What it is
Route Weaver draws the global flight network — 3,257 airports and 18,930 route pairs — as great-circle arcs on a dark world map. It opens on a world view of the 600 routes listed by the most airlines, then lets you click or search any airport to draw its entire network: every route as a bright arc, the longest and shortest legs, the top destinations, and hub-to-hub exploration with a breadcrumb trail back.
The arcs are great circles computed in the app. Every arc is a spherical linear interpolation in 64 steps, split at the antimeridian, so a route like Sydney to Los Angeles bends across the Pacific and splits at ±180° instead of drawing a straight line across the map. The dataset ships with the app; the only external service is the Esri basemap.
The route table is the OpenFlights snapshot of June 2014. It shows the shape of the network in 2014, not current schedules, and the header and footer label it as historical.
The experience
The app opens on the world view: the 600 routes listed by the most airlines drawn as faint blue arcs, airports sized by the number of airports they connect to, airports with 100 or more routes in gold, and a strip of the five most connected airports.
- World view. The 600 routes listed by the most airlines at low opacity, with a strip of the most connected airports (AMS 248, FRA 244, CDG 240, IST 235, ATL 217 airports served).
- Type-ahead search. Search by IATA code, airport name, or city, keyboard-navigable (arrows, Enter, Escape). Selecting an airport enters focus mode.
- Focus mode. The world layer hides and all of the chosen airport's routes redraw as bright arcs, with a pulsing gold marker and filter chips (All / 2+ / 3+ airlines). An airline counts once per airport pair, in either direction; codeshare listings count.
- The stats panel. Great-circle distances, the longest and shortest legs, and the top-10 destinations by number of airlines — each destination clickable to refocus, with a breadcrumb trail back. For JFK the longest route runs to Hong Kong at about 12,970 km and the shortest to Philadelphia at about 151 km.
- Controls. A Home pod returns to the world view and a filter pod narrows focus mode. No Esri widget chrome.
The data — where it comes from
The entire dataset ships with the app; the only external service is an anonymous Esri basemap.
OpenFlights lists each route once per airline and once per direction (67,663 rows in June 2014). Route Weaver joins them into 18,930 airport pairs and counts the distinct airlines on each pair, codeshare listings included.
| Source | What it provides | Refresh | Cost | Attribution |
|---|---|---|---|---|
| OpenFlights routes and airports (bundled) | 3,257 airports, 18,930 airport pairs, distinct airlines per pair | Static — June 2014 snapshot, historical | Open Database License (ODbL) | OpenFlights.org (openflights.org/data.php) — Open Database License (ODbL) |
| Esri dark-gray vector basemap | Anonymous cartographic base | Static | Anonymous basemap | Esri |
How it was assembled
Route Weaver is a React 19 + Tailwind 4 application on the ArcGIS Maps SDK for JavaScript, with no Esri UI widgets.
Engineering notes
- No credentials. The basemap loads anonymously and the data is bundled. An optional Location Platform basemap is documented in .env.example.
- Glass-pod controls, no Esri widget chrome. ui: { components: [] } clears the default chrome (attribution still renders), and all interaction lives in floating pods built with Tailwind and Lucide.
- Great circles in the app. Every arc is a 64-step spherical linear interpolation split at the antimeridian, not geodesicDensify. Verified: JFK→LHR is 5,539.7 km as one path; SYD→LAX is 12,061.1 km split into two paths at ±180°, crossing near latitude −14.98°.
- WGS84 geometry on a Web Mercator view. Polylines and points are built in WGS84; the SDK reprojects them onto the Web Mercator MapView.
- Two modes, built once. World view (600 arcs at 0.16 alpha) and focus (one airport's arcs at 0.65 alpha) are separate render paths. World and airport graphics are built once per load with addMany; focus graphics rebuild only on selection or filter change.
- Pulse. The selected-airport marker pulses by changing one graphic's symbol on a 90 ms interval — no layer rebuild.
- StrictMode-safe breadcrumbs. Selection and trail state use ref mirrors so callbacks stay stable and setState updaters stay pure.
- Data date. The dataset is the June 2014 OpenFlights snapshot and is labelled historical in the header and footer.
- Airline counts. scripts/recount-airlines.mjs rebuilds the per-pair airline count from routes.dat (md5-pinned).