feat(map): add persistent gateway and ontology package

This commit is contained in:
Codex
2026-07-13 17:14:34 +03:00
parent d196d4b0c7
commit e527812826
21 changed files with 1323 additions and 9 deletions
@@ -0,0 +1,56 @@
# Map Domain Ontology
Package: `catalog/domain-packages/map`
Status: first provider-neutral ontology slice for NDC Module Studio Map Page.
## Purpose
The package names stable spatial meanings already evidenced by the ENGINE MMAP workflow without making the current Cesium implementation canonical.
The Map Page, its visual components and renderer adapters belong to NDC Module Studio. ENGINE and NDC sources produce normalized domain data and commands through the Future Interface binding boundary. Platform services own access, provider credentials, proxy/cache and deployment concerns.
## Evidence boundary
The donor inspection covered the working `MMAP` workflow and its node of type `cesium`, plus Gelios, RZD/Yandex Rasp, Rail Inspector, city target, selection and grid layers.
The old `MoscowMapNode` is not a canonical donor. Runtime snapshots, provider tokens and full geometry datasets are evidence only and are not copied into Ontology Core.
## Canonical layers
```text
NDC domain source
-> moving objects, places, zones, routes, tracks, stations and events
-> Future Interface binding
-> Map View / Map Page slots
-> shared pin, label, selection, style and visibility contracts
-> replaceable renderer adapter
-> provider capabilities
```
Cesium is one possible renderer adapter. A future Cesium version or another provider can replace it without changing Map View, application manifests or domain subject identifiers.
## First acceptance slice
The first fixture-backed Map Page must cover:
- viewport and saved view;
- base/building layer capability states;
- multi-level grid using both local 3D and distant graticule modes;
- place targets with pulse and scale-by-distance;
- moving transport objects using shared pins and labels;
- metro, railway station, stop and terminal variants;
- railway route and track geometry;
- polygon/multipolygon zones with level-dependent style;
- selection driving Inspector or a quick card;
- loading, empty, stale, error and offline states.
## Known donor debt
- Viewer lifecycle, map provider setup, cache, grid and layer orchestration are concentrated in one large node.
- Labels are independently implemented by multiple source-specific layers.
- Large geozone sets are rendered as many individual polygon/polyline entities.
- Railway source handling, geometry LOD and renderer logic are only partially separated.
- Existing Grid/AIS rendering relies on a proxy canvas because moving a live WebGL canvas is unstable.
These constraints guide acceptance tests but do not become public Map Page contracts.