Google Earth Flight Path Visualization

By: Andrew Sarangan

This software can generate the scripts necessary for viewing a visual approach path on Google Earth. It allows a pilot to see what the terrain and runway looks like from the air prior to embarking on the flight. This is useful especially for airports in difficult or unusual terrain.

Type the route in the following box to generate the kmz file (see instructions below). If you have Google Earth installed, double clicking on the kmz file will show the moving cockpit view.

The route is defined by waypoints separated by ground speeds. Ground speeds are in knots. All turn will be made at twice the standard rate (6 deg/sec).

A waypoint is a point in 3D space. It requires a lat/lon reference, as well as an altitude. Optionally, a vertical speed can also be specified. If no vertical speed is specified, the flight path will climb/descend at a continuous rate between waypoints. If a vertical speed is specified, the initial climb or descend will be at the specified rate, leveling off as necessary after reaching the specified altitude. If the specified vertical speed is smaller than the value required to reach the next waypoint, it will be ignored, and the minimum required rate will be used.

Waypoints can be specified using one of several ways

  • RWY stands for the base end of runways.
    • RWY:20:MGY:SFC specifies runway 20 at MGY. The last term, SFC, says the altitude is the ground elevation.
    • RWY:04:I69:3000 specifies runway 4 (the leading zero is required) at I69 airport at an altitude of 3000 ft (MSL)
    • A typical takeoff might look like RWY:20:MGY:SFC 80 RWY:02:MGY:1200. This will produce a take off path from runway 20 at a ground speed of 80 knots, crossing the opposite end of the runway (which is runway 02) at 1200 ft MSL.
  • FIX stands for fixes in the FAA database.
    • A fix can be an airport code, navaid, an approach fix or an enroute fix.
    • Because some navaid stations share the same name as an airport (and are often not located at the same site), such navaids should be prefixed with the special character ^. For example, SFO would refer to the airport, whereas ^SFO would refer to the VOR station. Unique navaid names do not require the ^.
    • FIX:TALAC:2000,-500 specifies TALAC (which is a final approach fix) at an altitude of 2000 ft. The ‘,-500’ says to start the descent from the previous waypoint at 500 fpm. If 2000 ft is reached prior to reaching TALAC, the remaining leg will be continued at 2000 ft. If 500 ftpm is too small to reach 2000 ft, then the minimum computed descent rate will be used.
  • RAD stands for radial/distance from a fix, airport or navaid.
    • RAD:180:2.0:DQN:5000 represents a point 2.0 miles south of the DQN navaid at a radial of 180 deg. This waypoint will be crossed at 5000 ft.
    • RAD:330:5.0:^ONM:8000,500 specifies a point 5 miles from the ONM VOR (instead of the airport ONM) at a radial of 330. Crossing altitude will be 8000 ft using an initial climb rate of 500 fpm (or higher if 500fpm is not enough to reach 8000 ft).
  • RWP stands of Relative Waypoint. It defines the next waypoint relative to the previous waypoint.
    • RWP:250:2.0:5000 defines the next way point 2.0 miles on a radial of 250 from the previous fix. The crossing altitude will be 5000 ft
  • FLY defines the next waypoint at a specified distance on the current heading.
    • FLY:5.0:3000,500 defines the next waypoint 5.0 miles ahead on the current heading, with a crossing altitude of 3000 ft and a 500 fpm climb.
  • nGS defines the location where the glide slope from the runway intersects with the current altitude. n is the glide slope angle in degrees. While standard glide slopes are 3 deg, any integer value up to 9 can be used.
    • If the current altitude is 2000 ft, 3GS:20:MGY will locate the 2000 ft mark on the 3 deg glide slope to  runway 20 at MGY.
  • By default, all waypoints are treated as fly-by waypoints. It is possible to specify a fly-over waypoint. This can be done by including a ‘1’ in the last field of the waypoint description. For example, FIX:APE:5000:1 will make it a fly-over waypoint. Fly-over waypoints will require two turns – one to make the course change at the waypoint, followed by a second turn in the opposite direction to intercept the new course.

The following are some example routes. Simply download the KMZ files, or copy and paste these routes into the box above to see how it works.

  • Los Alamos, NM – RNAV Y Approach to Runway 27 – KMZ File or Youtube
    • FIX:WOBVO:9500 150 FIX:YUNSU:8900 150 FIX:ZUTPA:7580 150 RWY:27:LAM:7200
  • Santa Fe, NM – VOR Approach to Runway 33 – KMZ File or Youtube
    • RAD:152:1:^SAF:8200 150 FIX:^SAF:7800 150 4GS:33:SAF 150 RWY:33:SAF:6350
  • Telluride, CO – RNAV Y Approach to Runway 9 – KMZ File or Youtube
    • FIX:ETL:13000 200 FIX:CEPMA:13000 200 5GS:09:TEX 200 RWY:09:TEX:9150
  • Glenwood Springs, CO – Visual Approach to Runway 32 – KMZ File or Youtube
    • RAD:73.2:15.6:^RIL:10000 100 RWP:080:1:9000 100 RWP:100:1.5:8000 100 RWP:160:1:7500 100 RWP:150:1:7000 100 RWP:155:2.0:6800 80 RWP:150:1.0:6800 80 RWP:50:0.6:6500 80 5GS:32:GWS 80 RWY:32:GWS:6000
  • Aspen, CO – Roaring Fork Visual Approach to Runway 15 – KMZ File or Youtube
    • RAD:228:8:DBL:9000 200 RWP:120:3:9000 200 RWP:100:2.0:9000 200 RWP:140:1.5:8500 200 RWP:120:2.2:8000 200 5GS:15:ASE 200 RWY:15:ASE:7750
  • Washington, DC (DCA)- RNAV Approach to Runway 19 – KMZ File or Youtube
    • FIX:DARIC:2600 200 FIX:GREYZ:1700 200 FIX:SETOC:1500 200 FIX:FONVI:1214 200 FIX:JUBOL:955 200 FIX:WIRSO:480 200 FIX:FIROP:253 200 RWY:19:DCA:100
  • Grundy Municipal, VA – Visual approach to Runway 4 – KMZ File or Youtube
    • RAD:280:4:GDY:4500 100 RAD:230:3:GDY:3500 100 5GS:04:GDY 100 RWY:04:GDY:2400
  • Burke Lakefront, OH – RNAV Approach to Runway 24R – KMZ File or Youtube
    • FIX:TABEY:2400 200 4GS:24R:BKL 200 RWY:24R:BKL:700
  • Oshkosh, WI – VOR Approach to Runway 9 – KMZ File or Youtube
    • RAD:270:5:^OSH:2500 200 FIX:CETOL:2000 200 RWY:09:OSH:900
  • Halfmoon Bay, CA – RNAV Y Approach to Runway 30 – KMZ File or Youtube
    • FIX:TAILS:3500 200 FIX:HOMKA:3500 200 FIX:KAVRE:2000 200 FLY:1.0:1500 200 5GS:30:HAF 200 RWY:30:HAF:100
  • San Diego, CA – Localizer Approach to Runway 27 – KMZ File or Youtube
    • FIX:LYNDI:5000 200 FIX:VYDDA:4000 200 FIX:OKAIN:3600 200 FIX:CIJHI:2700 200 FIX:REEBO:2000 200 FLY:3.9:680 200 RWY:27:SAN:200
  • Yosemite, CA – RNAV Approach to Runway 27 – KMZ File or Youtube
    • FIX:JASAT:11000 200 FIX:FEBAT:9100 200 RWP:259:2.3:8380 200 4GS:27:MMH 200 RWY:27:MMH:7200
  • Laguardia, NY – Captain Sully Approach to Hudson – KMZ File or Youtube
    • RWY:04:LGA:SFC 200 RWY:22:LGA:500 200 FLY:0.5:800 200 RAD:10:4:^LGA:3200 200 FLY:4:3000 200 RWP:228:3:2000 200 FLY:4:1000 200 RWP:221:1:500 200 RWP:219:1:250 200 FLY:2:100
  • Anaktuvuk Pass, AK – RNAV A Circling Approach to Runway 20 – KMZ File or Youtube
    • FIX:AKUMY:9000 150 FIX:GESTE:7400 150 FIX:UPINE:5000 150 FLY:4:3000 100 6GS:20:AKP 100 RWY:20:AKP:2300


  • The syntax must be followed exactly. Invalid entries will cause the script to crash, and it is not going to tell you why.
  • The first waypoint cannot be RWP, FLY or nGS. This should be obvious.
  • The second waypoint cannot be FLY.
  • Don’t use this for long routes. This program is primarily intended for final approach visualization. It generates the flight path by creating a large number of intermediate waypoints. Longer routes will require a lot more points, and may overload the server. The script will self-terminate if it takes longer than 30 seconds.
  • This is running on a single-board computer (similar to a Raspberry Pi) with limited memory and processing power.