MapDisplay (Next)
Same map capabilities as Legacy MapDisplay (routes, cones, playback), but data is loaded through the Heat data service from $heat-dataservice channels and configuration is split between layout and channel payloads.
Dashboard generation
| Value | |
|---|---|
| Runner node | dashboard-v2 |
| Frontend | ui/dashboard (MapDisplayDS → MapContainer) |
| Data envelope | $heat-dataservice (contract) |
Layout component identifier
MapDisplay, configuration.component in v2 layout rows.
Layout configuration
Typical fields on the row configuration object:
| Field | Description |
|---|---|
component | "MapDisplay" |
name | Internal name |
titleContent | Panel title |
channels | Channel id(s) bound to this widget |
defaultRealm | Realm for data lookup |
showRealmFilterDropdown | Multi-realm UI |
enablePlaybackControls | Timeline controls |
showOpenModalButton | Expand to modal |
mapDisplayItem | { isSymbolToggle, mapConfig } |
mapConfig in layout uses the same keys as Legacy (see Legacy mapConfig table), including:
startMarkerStrokeColor,endMarkerStrokeColormarkerConeColorsmarkerConeAnglesshowMarkerCones,yawssupport on movement points
Layout excerpt
{
"component": "MapDisplay",
"colspan": 12,
"configuration": {
"name": "MapDisplay",
"titleContent": "Phase 2 & 3",
"channels": ["mapdisplay-data"],
"defaultRealm": "circuit-01",
"mapDisplayItem": {
"isSymbolToggle": false,
"mapConfig": {
"zoom": 18,
"showMarkerCones": true,
"markerConeColors": [["rgba(141,34,96,0.5)", "rgba(0,150,200,0.5)"]],
"startMarkerStrokeColor": "transparent",
"endMarkerStrokeColor": "transparent"
}
}
}
}Reference: ui/dashboard/src/lib/data-service/data-lib/heat-client/mockClient/mockData/layoutSchema.json.
Data contract
Envelope
Publish canonical $heat-dataservice with realms, groups, and channels per the dashboard-v2 upstream contract.
Map channel
| Property | Value |
|---|---|
shape | "mapdisplay" |
data | MapDisplayDSProps |
MapDisplayDSProps:
| Field | Required | Description |
|---|---|---|
movements | Yes | Same structure as Legacy movements[] |
mapStats | No | Stats below map |
Movement points support yaw, yaws, heading, latitude/longitude or x/y, capturedDate, etc. See Legacy movement point fields.
mapConfig is not required in channel data for Next. It is read from layout mapDisplayItem.mapConfig (channel metadata may also supply hints depending on layout).
Example channel payload
{
"id": "mapdisplay-data",
"name": "Map data",
"groupId": "performance",
"shape": "mapdisplay",
"data": {
"movements": [
{
"name": "Crew 1",
"movement": [
{
"latitude": "51.21431",
"longitude": "-1.83710",
"heading": "45",
"yaws": ["25", "90", "180"],
"speed": "2",
"capturedDate": "2025-05-08T11:56:40.029Z"
}
],
"markers": []
}
]
}
}Behaviour notes
- Playback follows the data-service timeline, not legacy
/v1/Mapquery parameters. - Multiple map channels: if layout lists several channels,
getMapDisplayDataFromChannelscurrently overwritesmovementsper channel (last wins). Prefer one channel or merge upstream. Legacy v1 uses a singleMapobject instead. - Monolithic authoring: teams on v1 often publish
{ "Map": { ... } }in one blob; on v2 split layout config and channelmovements.
NATO entity markers
Additive support for APP-6A-inspired symbols with optional circle and arc overlays on markers[].entity. Legacy markers[].id icons are unchanged. Full payload contract (legacy Map envelope and v2 channel shape): tools/arbex/rag/reference/components/MapEntityMarkers.md. Reference layout: MapDisplay-asw-example.json. Legacy reference: MapEntityMarkers.json.
movements[].entityConfig (same shape as markers[].entity, see above) applies a NATO symbol to the animated current-position marker instead of the default vehicle icon. movements[].hideAfterEnd: true hides that marker once playback passes the movement’s last recorded point, rather than freezing it in place. This is used to make a track that was later assessed as a false detection disappear from the map instead of staying pinned at its last position forever.
Related
- MapDisplay (Legacy): mount id
MapDisplay, data keyMap - Next components index
- Dataservice migration status
- dashboard-v2 upstream contract
- Reference JSON:
tools/arbex/reference/next/MapDisplay.json - Arbex RAG:
tools/arbex/rag/reference/components/MapDisplay.md