feat(foundry): close the operational map data loop

This commit is contained in:
Codex
2026-07-20 20:45:05 +03:00
parent aac44d057f
commit a02c3ff3dd
44 changed files with 4158 additions and 811 deletions
+107
View File
@@ -0,0 +1,107 @@
{
"schemaVersion": "nodedc.map-presentation-profiles/v1",
"profiles": [
{
"id": "map.moving-object.operational.default",
"version": "1.3.0",
"title": "Флот",
"semanticTypes": ["map.moving_object"],
"label": {
"mode": "subject_id",
"fields": ["display_name", "label", "name", "title"],
"fontWeight": 600,
"sizePx": 18,
"color": "#f5f5f5",
"outlineColor": "#0c0d12",
"outlineWidthPx": 1,
"backgroundColor": "#0c0d12",
"backgroundOpacity": 0.86,
"paddingX": 8,
"paddingY": 5,
"maxLength": 48,
"offsetX": 15,
"offsetY": 10,
"hideCameraHeightMeters": 70000
},
"target": {
"variant": "elevated-spike",
"stemHeightMeters": 1500,
"headSizePx": 9,
"stemWidthPx": 5,
"outlineColor": "#0c0d12",
"outlineOpacity": 0.6,
"outlineWidthPx": 1,
"hideCameraHeightMeters": 100000
},
"facets": [
{
"id": "availability",
"field": "availability_state",
"label": "Связь",
"filterable": true,
"counter": true,
"values": [
{ "value": "online", "label": "Онлайн", "order": 0 },
{ "value": "offline", "label": "Офлайн", "order": 1 }
]
},
{
"id": "motion",
"field": "motion_state",
"label": "Движение",
"filterable": true,
"counter": true,
"values": [
{ "value": "moving", "label": "В движении", "order": 0 },
{ "value": "stationary", "label": "Стоят", "order": 1 }
]
}
],
"styles": [
{ "id": "online", "color": "#86fdb8", "opacity": 0.9 },
{ "id": "offline", "color": "#c2c2c2", "opacity": 0.7 },
{ "id": "moving", "color": "#6fb5fb", "opacity": 0.9 },
{ "id": "stationary", "color": "#ffd485", "opacity": 0.9 }
],
"classes": [
{
"id": "availability-offline",
"label": "Офлайн",
"priority": 400,
"match": [{ "field": "availability_state", "equals": "offline" }],
"styleId": "offline",
"renderable": true
},
{
"id": "motion-moving",
"label": "В движении",
"priority": 300,
"match": [{ "field": "motion_state", "equals": "moving" }],
"styleId": "moving",
"renderable": true
},
{
"id": "motion-stationary",
"label": "Стоят",
"priority": 200,
"match": [{ "field": "motion_state", "equals": "stationary" }],
"styleId": "stationary",
"renderable": true
},
{
"id": "availability-online",
"label": "Онлайн",
"priority": 100,
"match": [{ "field": "availability_state", "equals": "online" }],
"styleId": "online",
"renderable": true
}
],
"defaultClassId": "motion-stationary",
"sort": [
{ "field": "availability_state", "order": ["online", "offline"] },
{ "field": "motion_state", "order": ["moving", "stationary"] }
]
}
]
}