feat(map): add fixed ENU and WGS84 sector grid

This commit is contained in:
Codex
2026-08-06 10:31:03 +03:00
parent 80e948c018
commit 6f1fcb1eb0
15 changed files with 1806 additions and 362 deletions
+30
View File
@@ -39,6 +39,8 @@
- Foundry session/auth boundary: `server/nodedc-auth.mjs`;
- UI TileCache и health state: `apps/catalog/src/MapFixturePreview.tsx`;
- Cesium adapter и provider startup: `apps/catalog/src/CesiumMapRenderer.tsx`;
- LOD policy и canonical M-MAP defaults: `apps/catalog/src/mapGridPolicy.mjs`;
- чистая адресация геосекторов: `apps/catalog/src/mapSectorGrid.mjs`;
- Platform provider/cache boundary: `../../platform/services/map-gateway/src/server.mjs`;
- Map Gateway runtime topology: `../../platform/infra/synology/docker-compose.platform-http.yml`;
- NAS egress service: `../../platform/services/dc-amd-proxy/server.mjs`;
@@ -160,6 +162,34 @@ Per-entity `PolygonGraphics` для массового слоя геозон н
цвета обновляет per-instance attributes без перестройки геометрии; изменение
толщины границы или cursor создаёт новое bounded batch generation.
### 4.4 Секторальная геосетка
Сетка принадлежит Map Page и остаётся provider-neutral. Cesium adapter только
материализует рассчитанные линии и выполняет аналитический pick сектора.
Положение камеры никогда не становится origin или фазой сетки.
- один фиксированный WGS84 origin хранится в layout (`55.7558`, `37.6173` по
умолчанию); старый `camera` mode при чтении мигрирует в `fixed`;
- LOD 1–3 используют метрические индексы ENU от origin, абсолютную WGS84
высоту и `clampToGround=false`; terrain и 3D Tiles не меняют границы;
- LOD 4–5 используют отдельный угловой шаг WGS84 с глобальной нулевой фазой;
`stepKm` не участвует в гратикуле;
- M-MAP thresholds: `10 / 50 / 200 / 800 / 3000 км`; последний LOD остаётся
активным до независимого auto-off `10000 км`;
- режимы по умолчанию: `3D / 3D / 3D / graticule / graticule`;
- параллели строятся как линии постоянной широты (`RHUMB` с явной выборкой),
а viewport через антимеридиан разбивается на два диапазона;
- sector id включает origin, LOD, шаг и signed integer address. Он не содержит
render serial, viewport или camera state и сохраняется при pan/zoom/reload;
- camera может менять LOD, view-cone и набор видимых линий, но не координаты,
границы или идентификаторы секторов;
- новый buffer подключается до удаления предыдущего. Дешёвый plan key
сравнивается до создания Cesium objects; markers имеют bounded stride.
Изменение origin или шага означает новую sector definition и закономерно
меняет идентификаторы. Сохранённые sector ids нельзя молча интерпретировать с
другим layout profile.
## 5. Credential model
### 5.1 Cesium Ion master token