feat: add weather, hazard, terrain and situation tools

Add get_weather, get_regional_brief, get_cyclones, get_fire_perimeters,
get_terrain_height, find_military_installations and get_map_features
over the application request services and the layers' sources.

situation_brief combines weather, earthquakes, fires, aircraft and
cyclones for an area by reusing those tools, marking sections that are
unavailable instead of failing. get_hud_caption returns the app's
heads-up display caption for the same overview.
This commit is contained in:
Sameh Khamis committed 2026-10-01 12:28:34 -07:00
1 parent 8c97fed92d
commit 0a74e36ce8
11 files changed
+1093 -23

No files matched your search

+16
View File
@@ -6,12 +6,16 @@
import { GBFS_CITY_REGISTRY } from '../../src/layers/bikeshare/registry.js';
import { createBikeshareSource } from '../../src/layers/bikeshare/source.js';
import { createCctvSource } from '../../src/layers/cctv/source.js';
import { createCycloneSource } from '../../src/layers/cyclones/source.js';
import { createUsgsEarthquakeSource } from '../../src/layers/earthquakes/source.js';
import { createFirmsSource } from '../../src/layers/firms/source.js';
import { createInstallationSource } from '../../src/layers/installations/source.js';
import { createLaunchSource } from '../../src/layers/launches/source.js';
import { createWfigsPerimeterSource } from '../../src/layers/perimeters/source.js';
import { createRadioSource } from '../../src/layers/radio/source.js';
import { createSatelliteSource } from '../../src/layers/satellites/source.js';
import { createTransitSource } from '../../src/layers/transit/source.js';
import { createApplicationRequestServices } from '../../src/services/requests.js';
import {
createAdsbLolSource,
createOpenSkySource,
@@ -44,6 +48,7 @@ export function createApiFetch({
/** Construct every service Core's tools read, backed by the local server. */
export function createLocalToolServices(options = {}) {
const fetchImpl = createApiFetch(options);
const requests = createApplicationRequestServices({ fetchImpl });
return {
earthquakes: createUsgsEarthquakeSource({ fetchImpl }),
fires: createFirmsSource({ fetchImpl }),
@@ -60,6 +65,17 @@ export function createLocalToolServices(options = {}) {
getStations: createBikeshareSource({ fetchImpl }).getStations,
},
transit: createTransitSource({ fetchImpl }),
weather: requests.weather,
regional: requests.regional,
terrain: requests.terrain,
summary: requests.summary,
features: requests.features,
cyclones: createCycloneSource({ fetchImpl }),
perimeters: createWfigsPerimeterSource({ fetchImpl }),
installations: createInstallationSource({
fetchImpl,
tileFetchImpl: fetchImpl,
}),
places: createGeocodePlaceService({ fetchImpl }),
};
}