Take the 2-minute tour ×

A lot of the time, I'm looking for a way to calculate the air-line distance between two places, most often city centers.

For example when I flew from Zurich to Helsinki I wanted to know how far it was. With Google Maps I can do it but not for the air-line distance.

So does anyone know a tool for doing this or can give me advice on how to do it manually using the geo coordinates? Then I could write my own little tool.

share|improve this question
Has air-line distance a meaning when travelling between two small airports is done only through a distant hub? –  mouviciel Oct 9 '11 at 18:54
Obviously not... –  RoflcoptrException Oct 9 '11 at 19:48
Minor thought: do smaller airplanes have to stay within a certain distance of land in case of engine failure? I thought I saw a site that said so. If so, the great circle distance wouldn't always be accurate. –  barrycarter Oct 10 '11 at 3:28
@barrycarter: Planes will deviate from the shortest path for all kinds of reasons, such as avoiding storms and using the jet stream to go faster. So it's not even possible to always know in advance. –  Michael Borgwardt Nov 30 '11 at 15:41
add comment

10 Answers

up vote 15 down vote accepted

The best place for these calculations is the "Great Circle Mapper" website.


To find the distance between two or more airports just enter them with dashes between them. eg, JFK-DFW or SFO-IAD-LHR

You can do multiple trips at once by separating them with commas. JKF-DFW,SFO-IAD-LHR

share|improve this answer
Note that these values are a lower bound on the actual distance a plane will travel between the airports. –  ESultanik Oct 11 '11 at 12:33
add comment

See here: http://www.movable-type.co.uk/scripts/latlong.html

var R = 6371; // Earth's average radius in km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;
share|improve this answer
add comment

In addition to the options already mentioned, milecalc.com will also do this calculation, using the Great Circle distance, which is the value typically used for frequent flyer mileage calculation etc.

share|improve this answer
add comment

Why don't you use this tool with Latitude and Longitude?

share|improve this answer
add comment

You can also draw such lines (called geodesics) in Google Maps using this site.

See also Is there a way to make a line in Google Maps account for the curvature of the Earth? on Stack Exchange Web Applications.

share|improve this answer
add comment

To All the repliers reccomending Great Circle math, You are only partly right.

The distance between two points on a sphere is found by GC Maths, however the OP specifically asked for the air-line distance. This is found by first finding all the points visited en-route to the destination and then calculating GC distances for all of the route pairs.

For example a flight from London to New York does not follow the great circle path between the two points. It follows a set of points, which may include Navaids, Waypoints, Airways, Departure routes, Arrival routes, lat/long fixes and range bearing points. see Flight Plan for more info.

So you would need to contact the airline involved and ask nicely for the flight plan used, and find the lat longs for each of the points visited.

share|improve this answer
This is exactly what I was thinking! –  Ankur Banerjee Oct 10 '11 at 8:51
add comment

If you want to do this calculation for flights, you would have to use the Spherical law of cosines as Gagravarr mentioned. However, if you want to write your own little tool and want to plot a line on a map then it gets a bit tricky. You would have to use a Lambert projection map to draw a straight line from A to B on it. The issue with the Lambert conformal conic projection is that those maps are only accurate along the two reference parallels, and the further you go away from them the less precise they are. This is usually not and issue on small maps that only cover 100x100km, but the larger the map the bigger the error margin gets. This has something to do with the fact that the earth is round, and you cannot do an exact 1:1 mapping from a round to a flat surface.

Google maps (and all nautical maps) uses a Cylindrical Map projection, this means you would have to draw curves on the map to get the same route as you would with a straight line on a Lambert projection.

share|improve this answer
add comment

If you want to calculate it yourself, then the spherical law of cosines is probably the easiest way to go about it. It'll likely be accurate enough for your needs, and is really simple. If you want it in python, try this code of mine (you'd want calculate_distance_and_bearing)

Likely you'll also want the location information for the various airports of interest. I've tended to use The Global Airport Database in the past for this sort of thing.

share|improve this answer
add comment

Many airlines include this information in their schedules. For example, Air Canada lets you download a PDF of their entire schedule. Here's a clip from it:

enter image description here

I suggest searching the website of the airline you intend to use. Any tool based on actually how far apart the cities are may be as much as 20-30 miles different from the airline distance.

share|improve this answer
Distances in catalogs (for frequent flyer miles etc) are usually the same optimal great-circle distances as provided by GCMap. Actual distances vary from day to day based on winds, air traffic control, etc. –  jpatokal Apr 20 '12 at 6:29
add comment

Your Answer


