\(\def\|{&}\DeclareMathOperator{\D}{\bigtriangleup\!} \DeclareMathOperator{\d}{\text{d}\!}\)
\( \newcommand{\Matrix}[1]{\left( \begin{matrix} #1 \end{matrix} \right)} \)
All pictures on this page are contributions by Dr. Bernd Frassek.
All meridians are great circles. Latitude circles other than the equator (for example circle B in the picture) are not great circles, for example because they are smaller than the equator, which is a great circle.
A great circle provides the shortest route if you travel at a fixed speed compared to the ground, and also (approximately) if your speed, though not fixed, is always much smaller than the rotation speed of the sphere at its equator. This does not hold, for example, for things that orbit around the Earth outside the atmosphere.
Suppose that you want to draw the shortest route on a map between a city P₁ and a far-away other city P₂, and you know the geographical longitude and latitude of both cities. Then, you can calculate the coordinates of points on that route as follows:
\begin{align} x_1 \| = \cos l_1 \cos b_1 \label{eq:naarcartesisch} \\ y_1 \| = \sin l_1 \cos b_1 \\ z_1 \| = \sin b_1 \end{align}
and similarly for the second city P₂.
\begin{equation} ψ = \arccos(x_1 x_2 + y_1 y_2 + z_1 z_2) \end{equation}
Calculate the coordinates of the point P₃ on the great circle that is 90° from the first city P₁ in the direction of the second city P₂ (see Figure 3):
\begin{equation} x_3 = \frac{x_2 - x_1 \cos ψ}{\sin ψ} \label{eq:punt3} \end{equation}
and similarly with \( y \) or \( z \) in stead of \( x \).
The cartesian coordinates of the points of the great circle are then, as a function of the angular distance \( φ \) (phi) from the first city:
\begin{equation} x = x_1 \cos φ + x_3 \sin φ \label{eq:positie} \end{equation}
and similarly with \( y \) or \( z \) in stead of \( x \). If \( φ = 0 \), then you are in the first city. If \( φ = ψ \), then you are in the second city.
You can now translate the cartesian coordinates \( x \), \( y \), \( z \) to polar coordinates \( l \), \( b \):
\begin{align} b \| = \arcsin(z) \label{eq:naarpolair} \\ l \| = \arctan(y,x) \end{align}
The \( \arctan(y,x) \) with two arguments means that you must make sure that the answer is in the right quadrant. The correct answer is either \( \arctan\left( \frac{y}{x} \right) \), or \( \arctan\left( \frac{y}{x} \right) + 180° \), and (in this case) you must select the solution that has \( x \) for its cosine and \( y \) for its sine (with the correct signs).
Many computer languages and computer calculation programs have a two-argument version of the arc tangent function, and many calculators have a translation function from cartesian to polar coordinates that you can use for this.
There is an alternative for formula \ref{eq:positie}, which does not require the calculation of the position of point 3:
\begin{equation} x = \frac{x_1 \sin(ψ - φ) + x_2 \sin φ}{\sin ψ} \end{equation}
and similarly with \( y \) or \( z \) instead of \( x \). However, point 3 is necessary if you want to know other things about the great circle, as you'll see below.
Suppose you want to know where you go if you start from a particular town in a particular direction and keep going straight. We assume that you travel at a speed that is much smaller than the rotation speed of the Earth along the equator. You'll then travel along a great circle. You can calculate the coordinates of points along the route as follows:
Calculate the cartesian coordinates \( x_3 \), \( y_3 \), \( z_3 \) of the great circle point at 90° from the city:
\begin{equation} x_3 = x_\text{south} \cos γ + x_\text{west} \sin γ \end{equation}
and similarly with \( y \) or \( z \) instead of \( x \).
Suppose you start from Amsterdam (52°22' north, 4°54' east) by going straight to the east, and you keep going straight. If you keep this up for 1000 km, then where are you?
Calculate the angular distance of the first city P₁ from the first special (northernmost or southernmost) point:
\begin{equation} φ_1 = \arctan\left( \frac{z_3}{z_1} \right) \end{equation}
The angular distance of the second special point is 180° greater (or less, that is the same thing on a circle):
\begin{equation} φ_2 = φ_1 + 180° \end{equation}
You can then use formula \ref{eq:positie} to calculate the corresponding cartesian coordinates, and then formula \ref{eq:naarpolair}ff to calculate the polar coordinates. It is not necessary to calculate the coordinates of the second special point, because it is at the exact opposite side of the planet from the first one, so its cartesian coordinates and its latitude are equal to those of the first point, times −1, and its longitude is 180° around the planet from the first special point.
For the great circle that passes through Amsterdam and San Francisco, we find \( φ_1 = 30.62449° \); \( φ_2 = 210.62449° \). The corresponding cartesian coordinates are \( x = −0.2427036 \); \( y = 0.3067243 \); \( z = −0.9203343 \) for \( φ_1 \), and \( x = 0.2427036 \); \( y = −0.3067243 \); \( z = 0.9203343 \) for \( φ_2 \). The corresponding polar coordinates are \( b = 66.975° \); \( l = −51.64627° \) for \( φ_1 \) and \( b = −66.975° \); \( l = 128.3537° \) for \( φ_2 \).
What is the distance from an arbitrary point Q to the great circle through P₁ and P₂, measured along the surface perpendicular to the great circle?
The short answer is that that distance \(α\) is determined by
\begin{equation} \sin(α) = \frac{\hat{Q} ⋅ (\hat{P}_1 × \hat{P}_2)}{|\hat{P}_1 × \hat{P}_2|} \label{eq:dist} \end{equation}
where \(⋅\) indicates the inner product of two vectors, \(×\) the vector cross product of two vectors, and \(|\vec{v}|\) indicates the length of vector \(\vec{v}\). The notation \(\hat{v}\) says that vector \(\vec{v}\) has a length equal to 1.
Here is the same answer, but with more explanation. The vectors \(\hat{P}_1\), \(\hat{P}_2\), and \(\hat{Q}\) point from the center of the sphere to the points P₁, P₂, and Q. Their Cartesian coordinates can be found from their polar coordinates using Eq. \eqref{eq:naarcartesisch}.
Vector \(\vec{S} = \hat{P}_1 × \hat{P}_2\) by definition makes a right angle with both \(\hat{P}_1\) and \(\hat{P}_2\), but its length is only equal to 1 if \(\hat{P}_1\) and \(\hat{P}_2\) are at a right angle themselves. Because its length might not be equal to 1, we write that vector as \(\vec{S}\) and not as \(\hat{S}\).
The inner product of \(\hat{Q}\) and \(\vec{S}\) is by definition related to the angle \(β\) between them, through
\begin{equation} |\hat{Q}| |\vec{S}| \cos(β) = \hat{Q} ⋅ \vec{S} \end{equation}
but because the length of \(\hat{Q}\) is \(|\hat{Q}| = 1\), we don't need to write that factor explicitly, so
\begin{equation} |\vec{S}| \cos(β) = \hat{Q} ⋅ \vec{S} \end{equation}
from which follows
\begin{equation} \cos(β) = \frac{\hat{Q} ⋅ \vec{S}}{|\vec{S}|} \end{equation}
Because \(\vec{S}\) is perpendicular to (the plane of) the great circle, the sum of the angle between \(\hat{Q}\) and \(\vec{S}\) and the angle between \(\hat{Q}\) and (the plane of) the great circle is 90°, so
\begin{eqnarray} β \| = \| 90° − α \\ \cos(β) \| = \| \sin(α) \end{eqnarray}
That leads us to Eq. \eqref{eq:dist}. The sign of \(\sin(α)\) depends on the order of P₁ and P₂. If we swap P₁ and P₂, then \(\sin(α)\) and \(\vec{S}\) get multiplied by −1. The \(z\) coordinate of \(\vec{S}\) says whether \(\vec{S}\) points to a location in the northern (\(z_S \gt 0\)) or southern (\(z_S \lt 0\)) hemisphere. If \(z_S\sin(α) \gt 0\), then Q lies on the north side of the great circle, and if \(z_S\sin(α) \lt 0\), then Q lies on the south side of the great circle.
It remains to explain that the inner product of two vectors is equal to
\begin{equation} \Matrix{x_1 \\ y_1 \\ z_1} ⋅ \Matrix{x_2 \\ y_2 \\ z_2} = x_1x_2 + y_1y_2 + z_1z_2 \end{equation}
and the vector cross product is equal to
\begin{equation} \Matrix{x_1 \\ y_1 \\ z_1} × \Matrix{x_2 \\ y_2 \\ z_2} = \Matrix{y_1z_2 − y_2z_1 \\ z_1x_2 − z_2x_1 \\ x_1y_2 − x_2y_1} \end{equation}
For example, how far from the great circle through Amsterdam (P₁) and San Francisco (P₂) is the airport of Reykjavik in Iceland (Q, at 64.13° north lattiude and 21.94° west longitude)?
We found before that for Amsterdam \( x_1 = 0.6083285 \); \( y_1 = 0.05215215 \); \( z_1 = 0.7919701 \) and for San Francisco \( x_2 = −0.423791 \); \( y_2 = −0.6672729 \); \( z_2 = 0.6124933 \).
For Reykjavik we find, using Eq. \eqref{eq:naarcartesisch}, the Cartesian coordinates \( x_Q = 0.4047297 \); \( y_Q = −0.1630286 \); \( z_Q = 0.8997864 \).
Then
\begin{eqnarray*} \vec{S} \| = \| \Matrix{0.6083285 \\ 0.05215215 \\ 0.7919701} × \Matrix{−0.423791 \\ −0.6672729 \\ 0.6124933} = \Matrix{0.560403 \\ −0.7082269 \\ −0.3838195} \\ |\vec{S}| \| = \| \sqrt{0.560403^2 + (−0.7082269)^2 + (−0.3838195)^2} = \sqrt{0.9629544} = 0.9813024 \\ \hat{Q} ⋅ \vec{S} \| = \| 0.4047297 × 0.560403 + (−0.1630286) × (−0.7082269) + 0.8997864 × (−0.3838195) = −0.00308254 \\ \sin(α) \| = \| \frac{−0.00308254}{0.9813024} = −0.003141275 \\ α \| = \| \arcsin(−0.003141275) = −0.1799821° \end{eqnarray*}
We find that \(z_S\sin(α) \gt 0\), so Reykjavik is to the north of the great circle through Amsterdam and San Francisco, at a distance of 0.18°.
Every great circle except for the equator intersects the equator in two points, called E_1 and E_2 in Figure 5. The longitudes of those points are 90° to the east and west of the northernmost and southernmost points of the great circle, of which the calculation is explained above.
It is impossible to make a map of the world on which all great circles run straight, but it is possible to make a map on which some great circles run straight, for example all great circles through a single point. In Figure 6, all great circles through the North Pole and South Pole run straight: Those are the meridians. The equator is a great circle and it, too, runs straight through that map.
//aa.quae.nl/en/reken/grootcirkel.html;
Last updated: 2020-07-18