Great-Circle vs Rhumb Line: Why Flight Paths Look Curved on Flat Maps
TL;DR
When flights look "bent" on world maps, that is usually correct, not weird.
- Great-circle route: shortest path on a sphere (what long-haul aviation usually optimizes for)
- Rhumb line (loxodrome): constant compass bearing (easier to steer manually, but usually longer)
- On a Mercator map, rhumb lines are straight, while many great-circle routes look curved
So the curved line on your map can be the shorter route in the real 3D world.
1) The core geometry in one picture (mental model)
Imagine Earth as a globe, then slice it with a plane that passes through Earth’s center and both cities.
- The intersection is a great circle.
- The arc between the two cities on that circle is the shortest surface distance.
A rhumb line is different:
- It crosses every meridian at the same angle (constant bearing).
- That makes it easier to follow with a fixed heading.
- But except for special cases (equator / meridians), it is not shortest.
2) Why projection creates the visual illusion
Most web maps use Web Mercator-like views for interaction and consistency.
- Mercator preserves local angles reasonably well (good for navigation charts historically).
- But it distorts distance and area, especially at high latitudes.
- In Mercator, rhumb lines become straight segments.
- Great-circle arcs generally appear curved (unless they coincide with equator or a meridian).
That is why a polar-leaning transoceanic flight often looks like an upward arch on screen.
3) Math you can reuse
For two points ((\phi_1, \lambda_1)), ((\phi_2, \lambda_2)) on a spherical Earth radius (R):
Great-circle (haversine form)
[ a = \sin^2\left(\frac{\Delta\phi}{2}\right) + \cos\phi_1\cos\phi_2\sin^2\left(\frac{\Delta\lambda}{2}\right) ] [ \delta = 2\arcsin(\sqrt{a}), \quad d_{gc}=R\delta ]
Rhumb-line distance (spherical)
[ \Delta\psi = \ln\left(\frac{\tan(\pi/4 + \phi_2/2)}{\tan(\pi/4 + \phi_1/2)}\right), \quad q = \begin{cases} \frac{\Delta\phi}{\Delta\psi}, & |\Delta\psi|>\epsilon \ \cos\phi_1, & \text{otherwise} \end{cases} ] [ d_{rhumb} = R\sqrt{(\Delta\phi)^2 + q^2(\Delta\lambda)^2} ]
(Use anti-meridian-safe (\Delta\lambda) normalization to pick the shorter longitudinal wrap.)
4) Concrete route comparisons (sphere approximation)
Using mean Earth radius (R=6371.0088,km):
| Route | Great-circle (km) | Rhumb (km) | Extra km (rhumb - gc) | Extra % |
|---|---|---|---|---|
| ICN → JFK | 11,089.9 | 13,798.0 | 2,708.1 | 24.42% |
| ICN → LHR | 8,861.3 | 10,116.8 | 1,255.5 | 14.17% |
| LAX → NRT | 8,752.9 | 9,235.3 | 482.4 | 5.51% |
| SIN → SFO | 13,580.1 | 14,291.0 | 710.9 | 5.23% |
| SYD → SCL | 11,346.7 | 12,783.6 | 1,436.9 | 12.66% |
Takeaway: the penalty of constant-bearing routing can be modest or huge depending on latitude and longitude separation.
5) Operational intuition (aviation vs old marine navigation)
Why great-circle dominates modern flight planning
- Lower distance tends to reduce fuel burn and block time.
- FMS/autopilot can continuously update heading without human burden.
- Route planning can include winds, airways, ETOPS constraints, political airspace, and weather, then approximate a geodesic backbone.
Why rhumb lines were historically attractive at sea
- A fixed compass heading is simple to steer.
- On Mercator charts, straight ruler lines are easy to draw and follow.
- For slower ships and older instrumentation, steering simplicity could outweigh distance optimality.
6) Common misunderstandings to avoid
"Straight on map = shortest"
- Only true in some projections/situations. On Mercator, it is often false for long-haul routes.
"Great-circle means one fixed heading"
- No. Initial and final headings can differ substantially.
"Any curved map line is geodesic"
- Not necessarily. Many consumer maps render smoothed or stylized paths.
"Sphere math is exact"
- Earth is ellipsoidal. Sphere formulas are usually close (often within about 1%) but not exact.
7) Tiny Python check
import math
R = 6371.0088 # km
def great_circle_km(lat1, lon1, lat2, lon2):
p1, p2 = math.radians(lat1), math.radians(lat2)
l1, l2 = math.radians(lon1), math.radians(lon2)
dp, dl = p2 - p1, l2 - l1
a = math.sin(dp/2)**2 + math.cos(p1)*math.cos(p2)*math.sin(dl/2)**2
return R * (2 * math.asin(math.sqrt(a)))
def rhumb_km(lat1, lon1, lat2, lon2):
p1, p2 = math.radians(lat1), math.radians(lat2)
l1, l2 = math.radians(lon1), math.radians(lon2)
dp, dl = p2 - p1, l2 - l1
# anti-meridian-safe delta-lon
if abs(dl) > math.pi:
dl = dl - 2*math.pi if dl > 0 else dl + 2*math.pi
dpsi = math.log(math.tan(math.pi/4 + p2/2) / math.tan(math.pi/4 + p1/2))
q = dp / dpsi if abs(dpsi) > 1e-12 else math.cos(p1)
return R * math.hypot(dp, q*dl)
8) Practical rule-of-thumb
If your route is long and especially if it spans higher latitudes, assume:
- geodesic/great-circle logic matters,
- map appearance can be deceptive,
- and projection choice can change what “looks straight.”
For product work (maps, tracking, logistics UIs), always label whether drawn segments are:
- geodesic,
- rhumb,
- airway/polyline,
- or simply screen-space interpolation.
That one label prevents a lot of user confusion.
References
- Wikipedia: Great-circle navigation (overview and spherical formulas)
https://en.wikipedia.org/wiki/Great-circle_navigation - Wikipedia: Rhumb line (constant-bearing definition and Mercator relation)
https://en.wikipedia.org/wiki/Rhumb_line - Movable Type Scripts: Latitude/Longitude spherical formulas (haversine, bearings, practical notes)
https://www.movable-type.co.uk/scripts/latlong.html - Snyder, J. P. (1987). Map Projections—A Working Manual (USGS Professional Paper 1395)
https://pubs.usgs.gov/pp/1395/report.pdf