๐Ÿ”” Data Feeds

Real-time situational awareness data rendered as CoT markers on your map. Disaster and emergency feeds are free with no subscription. ADS-B aircraft, AIS vessels, weather radar, and traffic cameras require a Live Data subscription.

Free  511, Alert Ready, wildfires, earthquakes, hurricanes & severe weather โ€” included in all versions    Live Data  ADS-B, AIS, weather radar, cameras โ€” subscription required

Architecture

flowchart LR
  subgraph SRC["Sources"]
    direction TB
    F["511 ON ยท QC ยท DriveBC ยท AB
Alert Ready ยท NRCAN ยท ADSB.lol"] WX["ECCC GeoMet ยท RainViewer
OpenWeather"] CAM["511 cameras ยท ON/AB/BC/QC"] end F -->|"HTTPS ยท GeoJSON / Open511
Atom+GeoRSS ยท WFS ยท JSON"| FM["FeedManager
poll ยท filter"] FM --> CD["Core Data"] --> MAP["MapView
CoT pins"] FM --> PN["Push Notification
new incidents"] WX -->|"MKTileOverlay XYZ"| WM["WeatherMgr
tile cache ยท 10 min TTL"] --> MAPT["MapView
tile overlay"] CAM -->|"HTTPS / JSON"| CM["CameraManager
per-province cache"] --> MAPC["MapView
camera pins"] CM --> CV["CameraViewerSheet
still / video"]
๐ŸŸข Free โ€” included in all versions
511 road incidents (ON, QC, BC, AB), Alert Ready emergency alerts, active wildfires, earthquakes, hurricanes, and severe weather alerts. No account, no API key, no subscription.
โšก Live Data โ€” subscription required
ADS-B aircraft tracking, AIS vessel tracking, weather radar overlays, and highway traffic cameras. Requires an active Live Data monthly or yearly subscription.

Feed Sources

FeedTierAPIFormatDataVia server feed?
Ontario 511Free511on.ca/api/v2JSONRoad incidents, closures, constructionโœ… as CoT
Quebec 511Freetransports.gouv.qc.caGeoJSON (WFS)Road incidentsโœ… as CoT
British ColumbiaFreeapi.open511.gov.bc.caOpen511 JSONRoad incidents with full event detailsโœ… as CoT
Alberta 511Free511.alberta.ca/api/v2JSONRoad incidentsโœ… as CoT
Alert ReadyFreerss.naad-adna.pelmorex.comAtom + GeoRSSAmber alerts, severe weather, wildfires, evacuations, earthquake EEWโœ… as CoT
Active WildfiresFreecwfis.cfs.nrcan.gc.caGeoJSON (WFS)Canadian wildfire hotspotsโœ… as CoT
ADS-B AircraftLive Dataapi.adsb.lolJSONLive aircraft positions, registration, type, operator, routeโœ… as CoT
AIS VesselsLive Dataaisstream.ioWebSocketLive ship positions worldwide, name, MMSI, heading, speed, destinationโœ… as CoT
Weather Radar (ECCC)Live Datageo.weather.gc.ca/geometXYZ tiles (WMS)Radar precipitation, snow, satelliteโš ๏ธ tile proxy
Weather Radar (RainViewer)Live Dataapi.rainviewer.comXYZ tilesGlobal radar precipitationโš ๏ธ tile proxy
Weather Radar (OpenWeatherMap)Live Datatile.openweathermap.orgXYZ tilesPrecipitation, wind, temp, pressureโš ๏ธ tile proxy
Traffic Cameras (ON)Live Data511on.caJSON + JPEG/videoHighway cameras with still image and video playbackโš ๏ธ relay
Traffic Cameras (AB)Live Data511.alberta.caJSON + JPEG/videoHighway camerasโš ๏ธ relay
Traffic Cameras (BC)Live Dataapi.open511.gov.bc.caOpen511 JSONHighway camerasโš ๏ธ relay
Traffic Cameras (QC)Live DataQuebec 511 APIJSON + JPEG/videoHighway cameras with multi-angle supportโš ๏ธ relay

Via server feed? Whether a TAK server can deliver this feed to the client instead of every device polling the source. โœ… as CoT โ€” point/vector feeds a server can poll once and inject to the whole team as Cursor-on-Target. โš ๏ธ tile proxy / relay โ€” raster and imagery feeds (radar, cameras) aren't CoT; a server can still serve them via a tile cache or stream relay. A per-feed Device/Server source selector is planned โ€” see issue #377.

โœˆ๏ธ ADS-B Aircraft Tracking Live Data

Live aircraft positions are fetched from ADSB.lol at a configurable interval (default 10 seconds). Each aircraft appears as a CoT marker on the map with a directional icon that rotates with heading.

Flight Enrichment

For each aircraft, two additional lookups run concurrently:

Results are cached for the lifetime of the app session. Tap an aircraft to see the "Flight Info" card in the detail sheet.

๐Ÿšข AIS Vessel Tracking Live Data

Live ship positions are streamed from AISStream.io via WebSocket. Requires an active Live Data subscription. Vessels appear as CoT markers on the map with a ship icon that rotates with heading.

๐Ÿ”‘ Subscriptions & API Keys

Free feeds require no account or API key. Live Data feeds are unlocked by a Live Data subscription โ€” no per-feed API key setup required.

FeatureTierAccess
511 Road IncidentsFreeNo account needed
Alert ReadyFreeNo account needed
Active WildfiresFreeNo account needed
ADS-B AircraftLive DataLive Data subscription
AIS Vessel TrackingLive DataLive Data subscription
Weather Radar (all backends)Live DataLive Data subscription
Traffic Cameras (all provinces)Live DataLive Data subscription

Map Overlays on Selection

Map Filters

๐ŸŒง๏ธ Weather Radar Overlay Live Data

Precipitation tiles are fetched as a standard MKTileOverlay and composited directly on the map. Tiles are cached in memory for 10 minutes to avoid redundant network requests.

Backends

BackendKey RequiredAvailable Layers
ECCC GeoMetNoneRadar precipitation, snow, satellite (GOES), surface analysis
RainViewerNoneGlobal radar precipitation (infrared)
OpenWeatherMapOptional (free tier)Precipitation, wind speed, temperature, pressure

Backend and layer are selected in the Overlay Manager. Opacity is adjustable. Radar can be toggled independently of other overlays.

๐Ÿ“ท Traffic Cameras Live Data

Highway camera locations are loaded from provincial 511 APIs and rendered as green pins on the map. Tap any pin to open the camera viewer.

Camera Viewer

Province Coverage

ProvinceSourceNotes
Ontario511on.caMulti-direction via Views[]
Alberta511.alberta.caJPEG still + video URL
British Columbiaapi.open511.gov.bc.caOpen511 format
QuebecQuebec 511GetImage.ashx (JPEG) + camera.ashx?format=mp4 (video); grouped by NumeroCamera

CoT Type Mapping

Each feed incident is converted to a CoT marker with an appropriate type and icon:

Incident TypeCoT TypeIcon
Road Closureb-r-.-o-cxmark.octagon.fill ๐Ÿ›‘
Constructionb-r-.-o-wcone.fill ๐Ÿ”ถ
Accident/Incidentb-r-.-o-aexclamationmark.triangle.fill โš ๏ธ
Weather Hazardb-r-.-o-hcloud.bolt.fill โ›ˆ๏ธ
Wildfireb-n-.-fflame.fill ๐Ÿ”ฅ

Example: Ontario 511 Response โ†’ CoT Marker

API Response (simplified)

{
  "ID": 86216,
  "RoadwayName": "HWY 17",
  "DirectionOfTravel": "Eastbound",
  "Description": "Daily Construction on HWY 17 Eastbound...",
  "EventType": "CONSTRUCTION",
  "Severity": "Moderate",
  "Latitude": 48.79229,
  "Longitude": -87.38264,
  "LastUpdated": 1757532060
}
    

Resulting CoT Marker

COTData {
  cotUid:    "511on-86216"
  callsign:  "HWY 17 Eastbound"
  cotType:   "b-r-.-o-w"        // construction
  latitude:  48.79229
  longitude: -87.38264
  icon:      "cone.fill"
  remarks:   "Daily Construction on HWY 17 Eastbound..."
  staleDate: 2026-09-15T00:00:00Z  // PlannedEndDate
}
    

Example: Alert Ready Entry

NAAD Atom Feed Entry (simplified)

<entry>
  <title>yellow advisory - fog - in effect</title>
  <author><name>Environment Canada</name></author>
  <georss:polygon>53.03 -115.15 53.01 -115.17 ... 53.03 -115.15</georss:polygon>
  <category term="severity=Moderate"/>
  <category term="event=fog"/>
  <category term="status=Actual"/>
  <category term="language=en-CA"/>
  <summary>Patchy fog has developed... near zero visibilities...</summary>
</entry>
    

Processing

  1. Parse Atom XML with GeoRSS polygon coordinates
  2. Compute centroid of polygon for marker placement
  3. Map event type ("fog") โ†’ CoT type (b-w-.-a) and icon (cloud.fog.fill)
  4. Filter by proximity to user location (configurable radius)
  5. Send local push notification if new

Proximity Filtering

For each incident:
  1. Calculate distance from user's GPS location
  2. If distance โ‰ค configured alert radius โ†’ include
  3. If active navigation route exists:
     Sample every 10th route coordinate
     If any sample โ‰ค alert radius from incident โ†’ include
  4. If user location unknown โ†’ exclude all (no flooding)
    

Reliability

โ† Back to Documentation