I'm a private pilot. These are the flights I logged in the summer of 2017, mostly out of
El Monte in the San Gabriel Valley, with cross-country trips up the coast to Camarillo and
Santa Barbara. Pick a flight to replay it.
How it's built
Data. The tracks started as Flightradar24 KML exports: about 9 MB, mostly HTML
popup markup repeated at every point. A small Python script reduces each point to time, position,
altitude, ground speed and heading, and matches endpoints to nearby airports, giving a single
213 KB JSON file. Two tracks end in the air where receiver coverage dropped out.
Globe. CesiumJS renders the WGS84 ellipsoid and streams map imagery as tiles on demand
from a quadtree, fetching finer levels only where the camera is looking. It runs without a Cesium
ion account, using Esri's World Imagery satellite tiles.
Time-dynamic replay. Each flight's points become samples in a time-tagged position
property, so Cesium interpolates the aircraft's position for any instant on the clock. The
timeline, replay speed, trailing path and the readout above are all driven by that one clock.
Geometry. Every track is a polyline at its reported altitude, converted from degrees and
meters to Earth-centered Cartesian coordinates. The selected flight also gets a translucent wall
dropped to the ground, so altitude reads at a glance from any angle. The camera frames each flight
with its bounding sphere, or follows the aircraft as a tracked entity.
Back to carlynlee.github.io