Subscribe to the smallest useful stream
Choose the layer, where clause, output fields, target spatial reference and whether geometry is required. Avoid transporting attributes or records the operator will never use.
Connect · normalize · process · update
Receive streaming geospatial events, subscribe to the records that matter, normalize geometry and coordinates, cache the latest state, batch changes and update the Unity scene without letting an unbounded feed take over the frame.
End-to-end pipeline
Transport is only the first step. A reliable geospatial feed also needs selection, parsing, identity, coordinate handling, backpressure, state management and a safe handoff to Unity’s main thread.
Source and connector matrix
The active Unity baseline and the broader delivery catalog are intentionally separated.
| Source | Transport + payload | Current path | Processing context |
|---|---|---|---|
| ArcGIS StreamServer Active baseline | Secure WebSocket; Esri feature-event JSON | Connect/reconnect, layer subscription, where clause, outFields, targetSR, add/update/delete event parsing, optional batching and latest-feature cache. | Use for moving assets, sensor observations, incident updates or other ArcGIS-hosted streaming layers. |
| TAK Server / CoT Active baseline | Authenticated REST plus CoT over WebSocket in the current TAK integration | Team and event context, chat, tasks, mission files, notifications and local DuckDB repositories. Coordinate and marker updates are dispatched into Unity. | Use for team awareness and mission collaboration; certificate, federation and server-version behavior are deployment-tested. |
| In-process or custom JSON Active ingestion API | Application callback, local message bus or a customer transport feeding JObject features | Register a stream, queue a feature, extract its identity and geometry, reproject, cache, index and emit batch/update events. | Use to integrate an approved SDK, sensor library, serial/radio gateway or local edge process without changing the core processing lifecycle. |
| Kafka + MQTT Delivery connector | Topic subscription and customer-defined payload schema | Adapter modules exist in the repository’s staged real-time area but are not part of the active Unity compile baseline. Dependencies, threading, reconnect and payload mapping must be promoted and validated. | Use when enterprise event buses or IoT brokers are required; connect through an edge gateway when direct device access is inappropriate. |
| GTFS Realtime + Moving Features Delivery connector | Protocol buffers, HTTP polling/streaming or standards-based feature updates | Adapter work is staged rather than active. Feed version, update cadence, identity rules, time semantics and geometry mapping are part of delivery integration. | Use for transit, fleet and moving-object workflows after validating source licensing and scale. |
| Database change or REST polling Delivery pattern | Incremental query, timestamp/watermark or service pagination | Map changed rows into the same ingestion API; retain a durable cursor externally or in approved local state; apply rate limits and retry policy. | Use when the source cannot push events. Polling frequency is based on operational need, source limits and battery/network constraints. |
Choose the layer, where clause, output fields, target spatial reference and whether geometry is required. Avoid transporting attributes or records the operator will never use.
Configure concurrent streams, retained features per stream, messages processed per frame and the maximum ingestion time allowed in that frame. Defer remaining work instead of blocking interaction.
Extract a stable feature ID, cache the latest version, index it by layer, remove stale or least-recently-used records and distinguish add, update and delete events.
Queue visualization work for Unity, reuse pooled objects by geometry type, apply layer styling, update LOD and cap visible features under the configured memory budget.
Use capped exponential reconnect, connection/error events and source timestamps. Decide whether the last known position remains visible, fades, is marked stale or is removed after a mission-defined interval.
Concrete configuration context
A delivery profile records the fields and operational controls required to interpret each message consistently.
REPRESENTATIVE STREAM PROFILE
streamId: vehicles
layerId: 12
sourceSR: 4326
targetSR: 4326
where: status = 'ACTIVE'
outFields:
- id
- callsign
- timestamp
- heading
- speed
- geometry
identityField: id
eventTimeField: timestamp
batching: enabled
cachePolicy: bounded-latest-state
Define identity, event time, geometry, altitude, heading, speed, status and units. Document whether updates are full snapshots, partial patches or deletes.
Compare event time and receive time, reject or flag stale updates, and establish whether messages may arrive out of order or be delivered more than once.
Validate coordinate range, spatial reference, required attributes and geometry type. Route malformed messages to diagnostics instead of silently drawing them at a default location.
Live plus offline
The baseline map, mission features and recent operational state can remain local while approved feeds add changes when a connection is available.
Render incoming assets over cached basemaps, local GeoPackage layers and 3D content. Run local proximity or containment checks against each accepted update.
Retain bounded recent features, show connection and staleness status, allow local analysis to continue, and queue only the offline actions the mission profile explicitly permits.
Resubscribe, request the correct snapshot or delta, reconcile by stable identity and event time, and process the recovery batch under the same frame and memory budgets.
End-to-end latency depends on the source, broker, network, message size, reprojection, analysis, target device and scene complexity. A delivery benchmark records receive-to-parse, parse-to-state and state-to-visible-update separately under representative load.
We’ll map the schema, connect the transport, define backpressure and stale-data behavior, and measure the pipeline on the intended hardware.
Plan a streaming evaluation