mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
refactor: construct application layers from supplied sources
This commit is contained in:
1 parent
cd704d0e9b
commit
8160ac5fe4
53 files changed
+1152
-400
No files matched your search
@@ -23,9 +23,10 @@ export function createStandaloneApplication({
|
||||
const loadingScreen = document.getElementById('loading-screen');
|
||||
const loaderStatus = loadingScreen.querySelector('.loader-status');
|
||||
let placeSearch;
|
||||
const catalog = createStandaloneCatalog();
|
||||
let catalog;
|
||||
return createApplication({
|
||||
createScene: (context) => {
|
||||
catalog = createStandaloneCatalog({ signal: context.signal });
|
||||
placeSearch = createStandalonePlaceSearch({
|
||||
...geospatial,
|
||||
resolveApiKey: () => googleApiKey,
|
||||
|
||||
+20
-37
@@ -1,40 +1,23 @@
|
||||
import flightsLayer from '../data/flights.js';
|
||||
import militaryFlightsLayer from '../data/militaryFlights.js';
|
||||
import alprCamerasLayer from '../data/alprCameras.js';
|
||||
import earthquakesLayer from '../data/earthquakes.js';
|
||||
import satellitesLayer from '../data/satellites.js';
|
||||
import rocketLaunchesLayer from '../data/rocketLaunches.js';
|
||||
import trafficLayer from '../data/traffic.js';
|
||||
import cctvLayer from '../data/cctv.js';
|
||||
import radioLayer from '../data/radio.js';
|
||||
import bikeshareLayer from '../data/bikeshare.js';
|
||||
import aisLiveVesselsLayer from '../data/aisLiveVessels.js';
|
||||
import militaryInstallationsLayer from '../data/militaryInstallations.js';
|
||||
import militaryAwarenessLayer from '../data/militaryAwareness.js';
|
||||
import localDataLayers from '../data/localLayers.js';
|
||||
import { LAYER_STATE_REGISTRY } from '../data/layerState.js';
|
||||
import { createApplicationCatalog } from '../app/constructCatalog.js';
|
||||
import { createStandaloneLayerSources } from './layerSources.js';
|
||||
export { createStandaloneReferenceSources } from './layerSources.js';
|
||||
|
||||
import { createLayerCatalog } from '../app/catalog.js';
|
||||
/** Create fresh layer instances using the existing standalone source choices. */
|
||||
export function createStandaloneCatalog({
|
||||
signal = new AbortController().signal,
|
||||
} = {}) {
|
||||
return createApplicationCatalog({
|
||||
sources: createStandaloneLayerSources(),
|
||||
signal,
|
||||
vesselOptions: {
|
||||
maxRows: import.meta.env?.VITE_AIS_LIVE_MAX_ROWS,
|
||||
maxLabels: import.meta.env?.VITE_AIS_LIVE_LABEL_MAX_ROWS,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
/** Select the existing standalone instances and current persistence schema. */
|
||||
export function createStandaloneCatalog() {
|
||||
return createLayerCatalog(
|
||||
[
|
||||
flightsLayer,
|
||||
militaryFlightsLayer,
|
||||
earthquakesLayer,
|
||||
alprCamerasLayer,
|
||||
satellitesLayer,
|
||||
rocketLaunchesLayer,
|
||||
trafficLayer,
|
||||
cctvLayer,
|
||||
radioLayer,
|
||||
bikeshareLayer,
|
||||
aisLiveVesselsLayer,
|
||||
militaryInstallationsLayer,
|
||||
militaryAwarenessLayer,
|
||||
...localDataLayers,
|
||||
],
|
||||
LAYER_STATE_REGISTRY,
|
||||
);
|
||||
// Direct compatibility callers share one catalog; application startup supplies its own.
|
||||
let compatibilityCatalog;
|
||||
export function getStandaloneCatalog() {
|
||||
return (compatibilityCatalog ||= createStandaloneCatalog());
|
||||
}
|
||||
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { createApplicationControls } from '../app/controls.js';
|
||||
import { createStandaloneCatalog } from './catalog.js';
|
||||
import { getStandaloneCatalog } from './catalog.js';
|
||||
export function createStandaloneControls(options) {
|
||||
return createApplicationControls({
|
||||
catalog: createStandaloneCatalog(),
|
||||
catalog: options?.catalog ?? getStandaloneCatalog(),
|
||||
...options,
|
||||
});
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import { createApplicationData } from '../app/data.js';
|
||||
import { createStandaloneCatalog } from './catalog.js';
|
||||
import { getStandaloneCatalog } from './catalog.js';
|
||||
export function createStandaloneData(options) {
|
||||
return createApplicationData({
|
||||
catalog: createStandaloneCatalog(),
|
||||
catalog: options?.catalog ?? getStandaloneCatalog(),
|
||||
...options,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
import {
|
||||
createOpenSkySource,
|
||||
createAdsbLolSource,
|
||||
createAisStreamSource,
|
||||
} from '../sources/live/standalone.js';
|
||||
import { createCctvSource } from '../layers/cctv/source.js';
|
||||
import { createRadioSource } from '../layers/radio/source.js';
|
||||
import { createTrafficSource } from '../layers/traffic/source.js';
|
||||
import { createBikeshareSource } from '../layers/bikeshare/source.js';
|
||||
import { createInstallationSource } from '../layers/installations/index.js';
|
||||
import { createSatelliteSource } from '../layers/satellites/index.js';
|
||||
import { createLaunchSource } from '../layers/launches/index.js';
|
||||
import { createOverpassAlprSource } from '../layers/alpr/index.js';
|
||||
import { createFirmsSource } from '../layers/firms/index.js';
|
||||
import { createUsgsEarthquakeSource } from '../layers/earthquakes/source.js';
|
||||
import { createBundledCableSource } from '../layers/submarineCables/bundledSource.js';
|
||||
|
||||
/** Existing reference feeds, usable independently of live source selection. */
|
||||
export function createStandaloneReferenceSources() {
|
||||
return {
|
||||
earthquakes: createUsgsEarthquakeSource(),
|
||||
cables: createBundledCableSource(),
|
||||
};
|
||||
}
|
||||
|
||||
/** Select standalone providers without starting their acquisition. */
|
||||
export function createStandaloneLayerSources() {
|
||||
return {
|
||||
...createStandaloneReferenceSources(),
|
||||
flights: createOpenSkySource(),
|
||||
military: createAdsbLolSource(),
|
||||
vessels: createAisStreamSource({
|
||||
apiUrl: import.meta.env?.VITE_AIS_LIVE_API_URL || '/api/ais-live',
|
||||
}),
|
||||
cctv: createCctvSource(),
|
||||
radio: createRadioSource(),
|
||||
traffic: createTrafficSource(),
|
||||
bikeshare: createBikeshareSource(),
|
||||
installations: createInstallationSource(),
|
||||
satellites: createSatelliteSource(),
|
||||
launches: createLaunchSource(),
|
||||
alpr: createOverpassAlprSource(),
|
||||
firms: createFirmsSource(),
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user