feat(map): add persisted ghost pin sandbox
This commit is contained in:
@@ -195,7 +195,7 @@ the existing Gateway is reachable and reports a configured state.
|
||||
## Map state contract
|
||||
|
||||
Mission Core stores a versioned map document outside operator environment
|
||||
media. The implemented contract is `missioncore.map-view/v2`, with optimistic
|
||||
media. The implemented contract is `missioncore.map-view/v3`, with optimistic
|
||||
revision:
|
||||
|
||||
- its default camera and complete visual state are the canonical Foundry
|
||||
@@ -204,8 +204,8 @@ revision:
|
||||
imagery remains active;
|
||||
- atmosphere, fog, sun, shadows, terrain, buildings and the elevated LOD grid
|
||||
are persisted as provider-neutral values;
|
||||
- saved `missioncore.map-view/v1` documents are upgraded in memory and become
|
||||
v2 on the next explicit save;
|
||||
- saved `missioncore.map-view/v1` and `missioncore.map-view/v2` documents are
|
||||
upgraded in memory and become v3 on the next explicit save;
|
||||
- provider attribution remains registered in the renderer. The local
|
||||
experiment may hide only the visual credit overlay through
|
||||
`MISSIONCORE_MAP_SANDBOX_HIDE_CREDITS=1`; production defaults to visible
|
||||
@@ -218,6 +218,9 @@ revision:
|
||||
- cache intent (`enabled`, `noOverwrite`), never server-level cache mode;
|
||||
- selected stable subject id, or `null`;
|
||||
- layer visibility;
|
||||
- a bounded temporary Ghost Pin sandbox: generation settings, actual
|
||||
coordinates, motion state and provider-neutral `elevated-spike`
|
||||
presentation;
|
||||
- no credentials, upstream URLs, cache objects or transient Cesium ids.
|
||||
|
||||
Resolution order:
|
||||
@@ -256,6 +259,14 @@ A real Mission Core map subject requires:
|
||||
Until that contract exists, the basemap remains valid with an honest empty
|
||||
subject state and the selected-entity section remains absent.
|
||||
|
||||
The temporary `Гост-пин` Inspector section is an explicit visual sandbox and
|
||||
does not relax this boundary. It creates numeric synthetic labels around the
|
||||
centre of the current Cesium view, can move them inside a bounded radius and
|
||||
persists only its declared positions on explicit map save. It never claims
|
||||
scanner evidence, `map.moving_object` authority, Data Product provenance or an
|
||||
Engine command. `Очистить позиции на карте` removes the complete synthetic
|
||||
layer from the draft; the next explicit save makes that removal durable.
|
||||
|
||||
## State grammar
|
||||
|
||||
The UI must distinguish:
|
||||
@@ -318,6 +329,18 @@ unbounded reconnect loops.
|
||||
- implement bounded renderer recreation for explicit viewport refresh;
|
||||
- keep provider credits available for any non-sandbox release.
|
||||
|
||||
### M3.1 — temporary Ghost Pin visual sandbox
|
||||
|
||||
- reuse the canonical Foundry moving-object `elevated-spike` profile without
|
||||
reading or mutating Foundry source;
|
||||
- generate at most 100 numeric synthetic pins around the actual current view
|
||||
centre;
|
||||
- keep one local animation loop and bounce motion back inside its saved radius;
|
||||
- save a snapshot of current positions together with camera and map state;
|
||||
- expose explicit clear and the complete pin/label presentation controls in the
|
||||
existing map Inspector;
|
||||
- keep the feature visibly marked as temporary and non-authoritative.
|
||||
|
||||
### M4 — secure API/key control plane
|
||||
|
||||
- add authenticated Mission Core admin authority;
|
||||
|
||||
Reference in New Issue
Block a user