the easiest way to do it (assuming spherical earth)is to convert the lat-lon values into X-Y-Z values. The center of the earth is (0,0,0), the intersection of the prime meridian and the equator is (R,0,0) lat 0, lon +90 is (0,R,0), the north pole is (0,0,R) the south pole is (0,0,-R) where R = radius of earth to go from lat lon to x y z is: x = R * Cos(lon) * Cos(lat) y = R * Sin(Lon) * Cos(lat) z = R * Sin(lat) You do that for point 1 and point 2, then determine the distance between them (straight line) x' = x2-x1 y' = y2-y1 z' = z2-z1 d = sqrt((x'*x')+(y'*y')+(z'*z')) One half of the angle from point 1 to point 2 is a = ArcSin(d/2R) to get the great circle distance take this angle (in radians), double it to get the actual angle, them multiply if by the radius of the earth D = 2 * a * R where D is the distance you are looking for.