Haversine formula


The haversine formula determines the great-circle distance between two points on a sphere given their longitudes and latitudes. Important in navigation, it is a special case of a more general formula in spherical trigonometry, the law of haversines, that relates the sides and angles of spherical triangles.
The first table of haversines in English was published by James Andrew in 1805, but Florian Cajori credits an earlier use by José de Mendoza y Ríos in 1801. The term haversine was coined in 1835 by James Inman.
These names follow from the fact that they are customarily written in terms of the haversine function, given by. The formulas could equally be written in terms of any multiple of the haversine, such as the older versine function. Prior to the advent of computers, the elimination of division and multiplication by factors of two proved convenient enough that tables of haversine values and logarithms were included in 19th- and early 20th-century navigation and trigonometric texts. These days, the haversine form is also convenient in that it has no coefficient in front of the function.

Formulation

Let the central angle between any two points on a sphere be:
where:
The haversine formula allows the haversine of to be computed directly from the latitude and longitude of the two points:
where
Finally, the haversine function, applied above to both the central angle and the differences in latitude and longitude, is
The haversine function computes half a versine of the angle.
To solve for the distance, apply the archaversine to or use the arcsine function:
or more explicitly:
When using these formulae, one must ensure that does not exceed 1 due to a floating point error. only approaches 1 for antipodal points —in this region, relatively large numerical errors tend to arise in the formula when finite precision is used. Because is then large a small error is often not a major concern in this unusual case.
As described below, a similar formula can be written using cosines instead of haversines, but if the two points are close together you might end up with, leading to an inaccurate answer. Since the haversine formula uses sines, it avoids that problem.
Either formula is only an approximation when applied to the Earth, which is not a perfect sphere: the "Earth radius" varies from 6356.752 km at the poles to 6378.137 km at the equator. More importantly, the radius of curvature of a north-south line on the earth's surface is 1% greater at the poles than at the equator —so the haversine formula and law of cosines cannot be guaranteed correct to better than 0.5%. More accurate methods that consider the Earth's ellipticity are given by Vincenty's formulae and the other formulas in the geographical distance article.

The law of haversines

Given a unit sphere, a "triangle" on the surface of the sphere is defined by the great circles connecting three points,, and on the sphere. If the lengths of these three sides are , , and , and the angle of the corner opposite is, then the law of haversines states:
Since this is a unit sphere, the lengths,, and are simply equal to the angles subtended by those sides from the center of the sphere.
In order to obtain the haversine formula of the previous section from this law, one simply considers the special case where is the north pole, while and are the two points whose separation is to be determined. In that case, and are , is the longitude separation, and is the desired. Noting that, the haversine formula immediately follows.
To derive the law of haversines, one starts with the spherical law of cosines:
As mentioned above, this formula is an ill-conditioned way of solving for when is small. Instead, we substitute the identity that, and also employ the addition identity, to obtain the law of haversines, above.