←
Lesson 47 · The great circle
Two ways across an ocean
score 0

Two ways across an ocean

On a sphere the shortest path between two points is an arc of the great circle — the circle whose centre is the centre of the earth. Sinnott's haversine form computes its length without losing precision on short legs: d=2Rarcsin⁡hav⁡Δφ+cos⁡φ1cos⁡φ2hav⁡Δλd = 2R\arcsin\sqrt{\operatorname{hav}\Delta\varphi + \cos\varphi_1\cos\varphi_2\operatorname{hav}\Delta\lambda}.

The letters, once, plainly. φ\varphi — phi — is latitude, north positive and south negative. λ\lambda — lambda — is longitude, east positive and west negative. Subscript 1 is where you are; subscript 2 is where you are going, and Δφ\Delta\varphi means φ2−φ1\varphi_2 - \varphi_1. RR is the earth's mean radius, 6,371 km. The haversine itself, hav⁡x=sin⁡2(x/2)\operatorname{hav}x = \sin^{2}(x/2), is just a compact way of writing a very small angle without losing it to rounding.

Look at what cos⁡φ1cos⁡φ2\cos\varphi_1\cos\varphi_2 is doing: it shrinks the longitude difference as you go poleward, because meridians converge. A degree of latitude is 111 km everywhere. A degree of longitude is 111 km at the equator, 71 km at 50° N, and nothing at all at the pole. Forget that cosine and you have drawn a flat earth.

The initial bearing, θ=atan2⁡ ⁣(sin⁡Δλcos⁡φ2,  cos⁡φ1sin⁡φ2−sin⁡φ1cos⁡φ2cos⁡Δλ)\theta = \operatorname{atan2}\!\left(\sin\Delta\lambda\cos\varphi_2,\; \cos\varphi_1\sin\varphi_2 - \sin\varphi_1\cos\varphi_2\cos\Delta\lambda\right), gives the course at the moment of departure, clockwise from true north. The word INITIAL is load-bearing. A great circle crosses every meridian at a different angle — that is exactly what makes it short — so steering one bearing the whole way puts you on a different track altogether. Great circle sailing in practice means breaking the route into legs, commonly every 5° of longitude, and recomputing.

The alternative is the rhumb line, or loxodrome: the track that crosses every meridian at the SAME angle, which is the route you get when you set one course and hold it. d=RΔφ2+q2Δλ2d = R\sqrt{\Delta\varphi^{2} + q^{2}\Delta\lambda^{2}}, where qq is the ratio of the true latitude difference to the stretched Mercator latitude difference — the same stretching that makes Greenland look continental.

The trade: the rhumb line is always longer, and the surplus grows with latitude and with east-west distance. It is a rounding error on a coastal hop and a serious fuel figure on a North Atlantic crossing. What you buy for it is one course to steer, which is worth a great deal on a small boat and very little on a ship with a plotter. One more caution: all of this is a sphere. Against the real ellipsoid the answer can be half a percent out, which is noise for a passage plan and money for a cable schedule — that is when Vincenty's method earns its keep.

dφ1λ1φ2λ2

d=2Rarcsin⁡sin⁡2φ2−φ12+cos⁡φ1cos⁡φ2sin⁡2λ2−λ12d = 2R\arcsin\sqrt{\sin^{2}\frac{\varphi_2-\varphi_1}{2} + \cos\varphi_1\cos\varphi_2\sin^{2}\frac{\lambda_2-\lambda_1}{2}}

  • dd= Great circle distance (length)
  • φ1\varphi_1= Latitude of the first point (angle)
  • λ1\lambda_1= Longitude of the first point (angle)
  • φ2\varphi_2= Latitude of the second point (angle)
  • λ2\lambda_2= Longitude of the second point (angle)
Great Circle Distance (Haversine) solver →
Nθφ2λ2φ1λ1

θ=atan2⁡ ⁣(sin⁡Δλ cos⁡φ2,  cos⁡φ1sin⁡φ2−sin⁡φ1cos⁡φ2cos⁡Δλ)\theta = \operatorname{atan2}\!\left(\sin\Delta\lambda\,\cos\varphi_2,\; \cos\varphi_1\sin\varphi_2 - \sin\varphi_1\cos\varphi_2\cos\Delta\lambda\right)

  • θ\theta= Initial true bearing
  • φ1\varphi_1= Latitude of the departure
  • λ1\lambda_1= Longitude of the departure
  • φ2\varphi_2= Latitude of the destination
  • λ2\lambda_2= Longitude of the destination

each variable a angle

Initial Great Circle Bearing solver →
φ1λ1φ2λ2d

d=R(φ2−φ1)2+q2(λ2−λ1)2d = R\sqrt{\left(\varphi_2-\varphi_1\right)^{2} + q^{2}\left(\lambda_2-\lambda_1\right)^{2}}

  • dd= Rhumb line distance (length)
  • φ1\varphi_1= Latitude of the first point (angle)
  • λ1\lambda_1= Longitude of the first point (angle)
  • φ2\varphi_2= Latitude of the second point (angle)
  • λ2\lambda_2= Longitude of the second point (angle)
Rhumb Line Distance solver →