GREAT CIRCLE SAILING
====================

 

Distance

The great circle distance in degrees between Point1 (lat1, lon1) and Point2 (lat2, lon2) is easily calculated:

cos(D)= Sin(lat1) * Sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1)

or what is the same:

D= arccos(Sin(lat1) * Sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1))

In this paper we assume the following signs N=+, S=-, W=+, E=- .

cos(D) will always fall in the range -1 < cos(D) < 1 and (D) will be a positive angle: 0° < D < 180°. You can use a formula that will use the arctan function but this will give a result in the -90° to +90° range and you need to add 180° if the result is negative.

  • multiply D by 60 to obtain distance in nautical miles or
  • multiply D by 69 to obtain distance in statute miles or
  • multiply D by 111.12 to obtain distance in Km

 

Azimuth

The azimuth or initial course from point 1 (origin) to point 2 (destination) Zn can also be easily calculated. Zn is always measured from North to East from 0° to 360°. First we calculate Z. If we have considered West longitudes as positive we use this formula:

Sin(lon2-lon1)

Tan(Z) = --------------------------------------------------

sin(lat1) * cos(lon2-lon1) - cos(lat1) * tan(lat2)

(If we had considered East longitudes as being positive we would need to change the sign on one side of this equation.)

The function ATAN( ) returns a value between -90° and +90° so Z needs to be adjusted to the right quadrant in order to obtain Zn: 0° < Zn < 360°

    If sign(sin(Z)) = sign(sin(lon2-lon1))
    Then Zn = Z + 180
    Else, If Z < 0
          Then Zn = Z + 360
          Else Zn = Z


Expressed in another way:

Zn

0° < lon2 - lon1

lon2 - lon1 < 0°

Z > 0

Z + 180

Z

Z < 0

Z + 360

Z + 180


The following formula adds 180° if needed to reduce Zn to the correct quadrant:

Zn = Z + 90 * (1 + sign( sin(lon2-lon1) * sin(Z) ) )