Summary
Display active Temporary Flight Restrictions (TFRs) as graphical boundaries on the moving map. TFRs are among the highest-risk airspace violations in general aviation — they are temporary, widely varied in shape and altitude, and frequently issued with little notice (Presidential movement, sporting events, disasters, wildfires).
Data Source
The FAA publishes active TFRs via a public REST API with no authentication required:
https://tfr.faa.gov/tfr2/list.jsp # HTML list (scrape-able)
https://tfr.faa.gov/save_pages/detail_<id>.xml # KML/XML per TFR
The FAA also provides a GeoJSON feed:
https://tfr.faa.gov/tfr_map_ims/jsonTFRData.jsp
Update interval: poll every 5–15 minutes is sufficient; TFRs rarely change within a flight.
Display
- Boundary polygon: red or notam-blue fill with 50% opacity, solid red border
- Label: TFR type (VIP, Disaster, Sports) + altitude range (e.g. "SFC–FL180")
- Pop-up detail: tap/click on TFR boundary shows full NOTAM text
- Proximity alert: warn pilot (audio or visual) when within configurable distance of a TFR boundary
TFR Types to Recognise
| Type |
FAA Code |
Suggested Colour |
| VIP (Presidential) |
91.141 |
Red (hard block) |
| Disaster / Emergency |
91.137 |
Orange |
| Wildfire |
91.137(a)(1) |
Orange |
| Space Operations |
91.143 |
Blue |
| Air show / Sporting |
91.145 |
Yellow |
| Stadium (game day) |
91.145 |
Yellow |
Offline Handling
Cache the last-known TFR set with a timestamp. If data is more than 1 hour old, show a stale-data warning rather than silently displaying outdated TFRs. Stale TFR data is worse than no data if it shows expired restrictions as active.
🤖 Generated with Claude Code
Summary
Display active Temporary Flight Restrictions (TFRs) as graphical boundaries on the moving map. TFRs are among the highest-risk airspace violations in general aviation — they are temporary, widely varied in shape and altitude, and frequently issued with little notice (Presidential movement, sporting events, disasters, wildfires).
Data Source
The FAA publishes active TFRs via a public REST API with no authentication required:
The FAA also provides a GeoJSON feed:
Update interval: poll every 5–15 minutes is sufficient; TFRs rarely change within a flight.
Display
TFR Types to Recognise
Offline Handling
Cache the last-known TFR set with a timestamp. If data is more than 1 hour old, show a stale-data warning rather than silently displaying outdated TFRs. Stale TFR data is worse than no data if it shows expired restrictions as active.
🤖 Generated with Claude Code