Let a host application place live contacts

createApplicationCatalog takes an optional placement provider. Its
layer(kind) hands Flights, Military Flights, AIS Vessels, Transit and Rail
a place(id, wallMs), and optionally observe(id, fix) and forget(id). While
live, each layer tells it every fix it accepts and draws a contact where it
places it: position, height (the layer's own when none is given), course
and speed. A null answer, a provider that throws, a kind it leaves out, or
no provider at all keeps the layer's own motion unchanged, and following
the world clock the layers never ask it. A transit vehicle or train it
holds still lets the render loop idle and is asked again each second;
vessels ask for frames only while it places one, and stop when the layer
turns off.

Tests show the layers draw and reconcile exactly as before without a
provider and with one that places nothing, draw where a provider places
them, and idle while it holds them still.
This commit is contained in:
Sameh Khamis committed 2026-11-14 15:07:25 -08:00
1 parent e53cfef1d1
commit 6f830a2e70
46 files changed
+1417 -34

No files matched your search

+10 -4
View File
@@ -1588,7 +1588,8 @@
"src/ui/unitLabels.js",
"src/time/worldClock.js",
"src/time/julian.js",
"src/data/planespottersPhoto.js"
"src/data/planespottersPhoto.js",
"src/layers/flights/placed.js"
],
"external": ["cesium"]
},
@@ -1661,7 +1662,8 @@
"src/i18n/locales/zh-Hant.json",
"src/ui/unitLabels.js",
"src/time/worldClock.js",
"src/time/julian.js"
"src/time/julian.js",
"src/layers/flights/placed.js"
],
"external": ["cesium"]
},
@@ -3824,7 +3826,9 @@
"src/data/planespottersPhoto.js",
"src/ui/stores/dataLibrary.js",
"src/data/openVesselPhoto.js",
"src/layers/vessels/photos.js"
"src/layers/vessels/photos.js",
"src/layers/flights/placed.js",
"src/data/placementProvider.js"
],
"external": [
"hls.js",
@@ -4542,7 +4546,9 @@
"src/data/imagingSensors.js",
"src/data/planespottersPhoto.js",
"src/layers/vessels/photos.js",
"src/data/openVesselPhoto.js"
"src/data/openVesselPhoto.js",
"src/layers/flights/placed.js",
"src/data/placementProvider.js"
],
"external": [
"hls.js",