# Great-circle distance

The great-circle distance, orthodromic distance, or spherical distance is the distance along a great circle.

It is the shortest distance between two points on the surface of a sphere, measured along the surface of the sphere (as opposed to a straight line through the sphere's interior). The distance between two points in Euclidean space is the length of a straight line between them, i.e., the chord's length, but on the sphere there are no straight lines. In spaces with curvature, straight lines are replaced by geodesics. Geodesics on the sphere are circles on the sphere whose centers coincide with the center of the sphere, and are called 'great circles'.

The determination of the great-circle distance is part of the more general problem of great-circle navigation, which also computes the azimuths at the end points and intermediate way-points.

Through any two points on a sphere that are not antipodal points (directly opposite each other), there is a unique great circle. The two points separate the great circle into two arcs. The length of the shorter arc is the great-circle distance between the points. A great circle endowed with such a distance is called a Riemannian circle in Riemannian geometry.

Between antipodal points, there are infinitely many great circles, and all great circle arcs between antipodal points have a length of half the circumference of the circle, or ${\displaystyle \pi r}$, where r is the radius of the sphere.

The Earth is nearly spherical, so great-circle distance formulas give the distance between points on the surface of the Earth correct to within about 0.5%.[1]

## Formulae

Let ${\displaystyle \lambda _{1},\phi _{1}}$  and ${\displaystyle \lambda _{2},\phi _{2}}$  be the geographical longitude and latitude of two points 1 and 2, and ${\displaystyle \Delta \lambda ,\Delta \phi }$  be their absolute differences; then ${\displaystyle \Delta \sigma }$ , the central angle between them, is given by the spherical law of cosines if one of the poles is used as an auxiliary third point on the sphere:[2]

${\displaystyle \Delta \sigma =\arccos {\bigl (}\sin \phi _{1}\sin \phi _{2}+\cos \phi _{1}\cos \phi _{2}\cos \Delta \lambda {\bigr )}.}$

The problem is normally expressed in terms of finding the central angle ${\displaystyle \Delta \sigma }$ . Given this angle in radians, the actual arc length d on a sphere of radius r can be trivially computed as

${\displaystyle d=r\,\Delta \sigma .}$

## Relation between central angle and chord length

The central angle ${\displaystyle \Delta \sigma }$  is related with the chord length of unit sphere ${\displaystyle \Delta \sigma _{\text{c}}\,\!}$ :

{\displaystyle {\begin{aligned}\Delta \sigma &=2\arcsin {\frac {\Delta \sigma _{\text{c}}}{2}},\\\Delta \sigma _{\text{c}}&=2\sin {\frac {\Delta \sigma }{2}}.\end{aligned}}}

### Computational formulae

On computer systems with low floating point precision, the spherical law of cosines formula can have large rounding errors if the distance is small (if the two points are a kilometer apart on the surface of the Earth, the cosine of the central angle is near 0.99999999). For modern 64-bit floating-point numbers, the spherical law of cosines formula, given above, does not have serious rounding errors for distances larger than a few meters on the surface of the Earth.[3] The haversine formula is numerically better-conditioned for small distances by using the chord-length relation:[4]

{\displaystyle {\begin{aligned}\Delta \sigma &=\operatorname {archav} \left(\operatorname {hav} \left(\Delta \phi \right)+\left(1-\operatorname {hav} (\Delta \phi )-\operatorname {hav} (\phi _{1}+\phi _{2})\right)\operatorname {hav} \left(\Delta \lambda \right)\right).\end{aligned}}}

Historically, the use of this formula was simplified by the availability of tables for the haversine function: hav(θ) = sin2(θ/2).

The following shows the equivalent formula expressing the chord length explicitly:

{\displaystyle {\begin{aligned}\Delta \sigma &=2\arcsin {\frac {\Delta \sigma _{\text{c}}}{2}},\\\Delta \sigma _{\text{c}}&=2{\sqrt {\sin ^{2}{\frac {\Delta \phi }{2}}+\left(\cos ^{2}\phi _{\text{m}}-\sin ^{2}{\frac {\Delta \phi }{2}}\right)\sin ^{2}{\frac {\Delta \lambda }{2}}}},\end{aligned}}}

where ${\displaystyle \phi _{\text{m}}={\frac {\phi _{1}+\phi _{2}}{2}}}$ .

Although this formula is accurate for most distances on a sphere, it too suffers from rounding errors for the special (and somewhat unusual) case of antipodal points. A formula that is accurate for all distances is the following special case of the Vincenty formula for an ellipsoid with equal major and minor axes:[5]

${\displaystyle \Delta \sigma =\arctan {\frac {\sqrt {\left(\cos \phi _{2}\sin \Delta \lambda \right)^{2}+\left(\cos \phi _{1}\sin \phi _{2}-\sin \phi _{1}\cos \phi _{2}\cos \Delta \lambda \right)^{2}}}{\sin \phi _{1}\sin \phi _{2}+\cos \phi _{1}\cos \phi _{2}\cos \Delta \lambda }}.}$

Here the quadrant for ${\displaystyle \Delta \sigma }$  should be governed by the signs of the numerator and denominator of the right hand side, e.g., using the atan2 function.

### Vector version

Another representation of similar formulas, but using normal vectors instead of latitude and longitude to describe the positions, is found by means of 3D vector algebra, using the dot product, cross product, or a combination:[6]

{\displaystyle {\begin{aligned}\Delta \sigma &=\arccos \left(\mathbf {n} _{1}\cdot \mathbf {n} _{2}\right)\\&=\arcsin \left|\mathbf {n} _{1}\times \mathbf {n} _{2}\right|\\&=\arctan {\frac {\left|\mathbf {n} _{1}\times \mathbf {n} _{2}\right|}{\mathbf {n} _{1}\cdot \mathbf {n} _{2}}}\\\end{aligned}}}

where ${\displaystyle \mathbf {n} _{1}}$  and ${\displaystyle \mathbf {n} _{2}}$  are the normals to the sphere at the two positions 1 and 2. Similarly to the equations above based on latitude and longitude, the expression based on arctan is the only one that is well-conditioned for all angles. The expression based on arctan requires the magnitude of the cross product over the dot product.

### From chord length

A line through three-dimensional space between points of interest on a spherical Earth is the chord of the great circle between the points. The central angle between the two points can be determined from the chord length. The great circle distance is proportional to the central angle.

The great circle chord length, ${\displaystyle \Delta \sigma _{\text{c}}\,\!}$ , may be calculated as follows for the corresponding unit sphere, by means of Cartesian subtraction:

{\displaystyle {\begin{aligned}\Delta {X}&=\cos \phi _{2}\cos \lambda _{2}-\cos \phi _{1}\cos \lambda _{1};\\\Delta {Y}&=\cos \phi _{2}\sin \lambda _{2}-\cos \phi _{1}\sin \lambda _{1};\\\Delta {Z}&=\sin \phi _{2}-\sin \phi _{1};\\\Delta \sigma _{\text{c}}&={\sqrt {(\Delta {X})^{2}+(\Delta {Y})^{2}+(\Delta {Z})^{2}}}.\end{aligned}}}

The shape of the Earth closely resembles a flattened sphere (a spheroid) with equatorial radius ${\displaystyle a}$  of 6378.137 km; distance ${\displaystyle b}$  from the center of the spheroid to each pole is 6356.7523142 km. When calculating the length of a short north-south line at the equator, the circle that best approximates that line has a radius of ${\textstyle {\frac {b^{2}}{a}}}$  (which equals the meridian's semi-latus rectum), or 6335.439 km, while the spheroid at the poles is best approximated by a sphere of radius ${\textstyle {\frac {a^{2}}{b}}}$ , or 6399.594 km, a 1% difference. So long as a spherical Earth is assumed, any single formula for distance on the Earth is only guaranteed correct within 0.5% (though better accuracy is possible if the formula is only intended to apply to a limited area). Using the mean Earth radius, ${\textstyle R_{1}={\frac {1}{3}}(2a+b)\approx 6371.009{\text{ km}}}$  (for the WGS84 ellipsoid) means that in the limit of small flattening, the mean square relative error in the estimates for distance is minimized.[7]