mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
refactor: separate map feature queries and source records
This commit is contained in:
1 parent
a8125ad917
commit
bf1d50f29b
28 files changed
+1128
-675
No files matched your search
+13
-3
@@ -1,3 +1,4 @@
|
||||
import { createOverpassFeatureSource } from '../sources/overpassFeatures.js';
|
||||
import { createSurfaceServices } from './surfaceServices.js';
|
||||
import { createAnnotationResolver } from '../annotations/resolver.js';
|
||||
import { searchAndFlyTo } from '../locations.js';
|
||||
@@ -5,7 +6,6 @@ import { searchAndFlyTo } from '../locations.js';
|
||||
/** Assemble application operations from the caller's request services. */
|
||||
export function createApplicationOperations({ requests, signal, eventTarget }) {
|
||||
for (const [name, method] of Object.entries({
|
||||
boundaries: 'query',
|
||||
terrain: 'getHeights',
|
||||
regional: 'getBrief',
|
||||
weather: 'getConditions',
|
||||
@@ -19,8 +19,14 @@ export function createApplicationOperations({ requests, signal, eventTarget }) {
|
||||
signal,
|
||||
eventTarget,
|
||||
});
|
||||
const features =
|
||||
requests.features ??
|
||||
createOverpassFeatureSource({
|
||||
boundarySource: requests.boundaries,
|
||||
signal,
|
||||
});
|
||||
const annotationResolver = createAnnotationResolver({
|
||||
boundarySource: requests.boundaries,
|
||||
featureSource: features,
|
||||
signal,
|
||||
});
|
||||
return Object.freeze({
|
||||
@@ -30,7 +36,11 @@ export function createApplicationOperations({ requests, signal, eventTarget }) {
|
||||
searchAndFlyTo: (viewer, query, options = {}) =>
|
||||
searchAndFlyTo(viewer, query, {
|
||||
...options,
|
||||
boundaries: requests.boundaries,
|
||||
features,
|
||||
signal:
|
||||
signal && options.signal
|
||||
? AbortSignal.any([signal, options.signal])
|
||||
: signal || options.signal,
|
||||
recoverNearView: annotationResolver.placesNearViewRecovery,
|
||||
}),
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user