Algorithms For Geodesics
Algorithms For Geodesics
Algorithms For Geodesics
DOI 10.1007/s00190-012-0578-z
ORIGINAL ARTICLE
Received: 21 September 2011 / Accepted: 30 May 2012 / Published online: 26 June 2012
The Author(s) 2012. This article is published with open access at Springerlink.com
1 Introduction
The shortest path between two points on the earth, customarily treated as an ellipsoid of revolution, is called a geodesic.
Two geodesic problems are usually considered: the direct
problem of finding the end point of a geodesic given its starting point, initial azimuth, and length; and the inverse problem
of finding the shortest path between two given points. Referring to Fig. 1, it can be seen that each problem is equivalent to
solving the geodesic triangle N AB given two sides and their
included angle (the azimuth at the first point, 1 , in the case
of the direct problem and the longitude difference, 12 , in the
case of the inverse problem). The framework for solving these
problems was laid down by Legendre (1806), Oriani (1806,
1808, 1810), Bessel (1825), and Helmert (1880). Based on
these works, Vincenty (1975a) devised algorithms for solving
the geodesic problems suitable for early programmable desk
calculators; these algorithms are in widespread use today.
A good summary of Vincentys algorithms and the earlier
work in the field is given by Rapp (1993, Chap. 1).
C. F. F. Karney (B)
SRI International, 201 Washington Rd, Princeton,
NJ 08543-5300, USA
e-mail: charles.karney@sri.com
123
44
C. F. F. Karney
N
()
12
s12
where is the reduced latitude (sometimes called the parametric latitude), given by
tan = (1 f ) tan .
e2 = (a 2 b2 )/a 2 = f (2 f ),
2
e = (a b )/b = e /(1 e ).
2
(1)
(2)
(3)
(4)
123
(6)
The geodesic problems are most easily solved using an auxiliary sphere which allows an exact correspondence to be
made between a geodesic and a great circle on a sphere. On
the sphere, the latitude is replaced by the reduced latitude , and azimuths are preserved. From Fig. 2, it is clear
that Clairauts equation, sin 0 = sin cos , is just the sine
rule applied to the sides N E and N P of the triangle N E P
and their opposite angles. The third side, the spherical arc
length , and its opposite angle, the spherical longitude ,
are related to the equivalent quantities on the ellipsoid, the
distance s, and longitude , by (Rapp 1993, Eqs. (1.28) and
(1.170))
1 + k 2 sin2 d = I1 ( ),
n = (a b)/(a + b) = f /(2 f ),
(7)
1 e2 ,
()
Fig. 2 The elementary ellipsoidal triangle N E P mapped to the auxiliary sphere. N E and N P G are meridians; E G is the equator; and E P is
the great circle (i.e., the geodesic). The corresponding ellipsoidal variables are shown in parentheses. Here P represents an arbitrary point on
the geodesic E AB in Fig. 1
s
=
b
f = (a b)/a = 1
(s)
(5)
= f sin 0
0
2 f
d
1 + (1 f ) 1 + k 2 sin2
= f sin 0 I3 ( ),
(8)
where
k = e cos 0 .
(9)
See also Eqs. (5.4.9) and (5.8.8) of Helmert (1880). The origin for s, , , and is the point E, at which the geodesic
crosses the equator in the northward direction, with azimuth
0 . The point P can stand for either end of the geodesic AB
in Fig. 1, with the quantities , , , , s, and acquiring a
subscript 1 or 2. I also define s12 = s2 s1 as the length of
AB, with 12 , 12 , and 12 defined similarly. (In this paper,
45
(10)
(11)
(12)
(13)
(14)
C1l sin 2l ,
(15)
I1 ( ) = A1 +
l=1
1 + k2 1
2
,
(16)
or k =
=
1
1 + k2 + 1
as the expansion parameter. This leads to expansions with
half as many terms as the corresponding ones in k 2 . The
expansion can be conveniently carried out to arbitrary order
by a computer algebra system such as Maxima (2009) which
yields
A1 = (1 )1 1 + 41 2 +
1 4
64
1 6
256
C11 = 21 +
C12 =
C13 =
C14 =
C15 =
3 3
1 5
16 32 + ,
1 2
1 4
9
16
+ 32
2048
6 +
1 3
3 5
48
+ 256
+ ,
5 4
3 6
512
+ 512
+ ,
5
7
1280 + ,
+ ,
(17)
7
6 + .
C16 = 2048
(18)
C1l
sin 2l,
(20)
l=1
where
C11
= 21
C12
=
C13
C14
C15
C16
=
=
=
=
9 3
205 5
32 + 1536 + ,
5 2
37 4
1335 6
16 96 + 4096 +
29 3
75 5
96 128 + ,
539 4
2391 6
1536 2560 + ,
3467 5
7680 + ,
38081 6
61440 + .
(21)
(22)
I3 ( ) = A3 +
C3l sin 2l .
(23)
l=1
C31
3 5
128
+ ,
1 1
3
= 4 4 n + 18 18 n 2 2 + 64
+
5
1
3 5
+ 128
+ 64
n 4 + 128
+ ,
(24)
3
1 2
3
64 n 64 n
123
46
C. F. F. Karney
Table 1 The parameters for the WGS84 ellipsoid used in the examples. The column labeled Eq. lists the equations used to compute the
corresponding quantities
Qty.
Value
Eq.
Qty.
Value
Eq.
6 378 137 m
Given
40
Given
Given
30
Given
(1)
s12
10 000 000 m
Given
(60)
Solve triangle N E A
(2)
(6)
e2
(3)
(10)
e2
(4)
(11)
(12)
k2
(9)
(16)
A1
(17)
C32 =
C33
C34
1
16
3
32 n
1 2
32 n
+
2
3
64
1
32 n
3
1
5 5
+ 128
+ 128
n 4 + 256
+ ,
3
5
3
5 2
3
= 192 64 n + 192 n + 128
7 5
+ 512
+ ,
7
7
= 512 256
n 4 +
C35 =
21 5
2560
+ .
7 5
512
3 2
64 n
5
192 n
Determine 2
+ ,
(25)
3 Differential quantities
Before turning to the inverse problem, I present Gauss solution for the differential behavior of geodesics. One differential quantity, the reduced length m 12 , is needed in the solution
of the inverse problem by Newtons method (Sect. 4) and an
expression for this quantity is given at the end of this section.
However, because this and other differential quantities aid in
the solution of many geodesic problems, I also discuss their
derivation and present some of their properties.
123
I1 (1 )
(15)
s1
(7)
s2
s1 + s12
s2 /(b A1 )
(20)
(14)
(13)
(12)
Solve triangle N E B
Determine 12
A3
(24)
I3 (1 )
(23)
I3 (2 )
(23)
(8)
(8)
12
2 1
(6)
12
Solution
(27)
(a)
47
m12d1
M12dt1
B
m 13 = m 12 M23 + m 23 M21 ,
(b)
dt1
(c)
dt A (s)
= 1,
ds
s=s1
dt B (s)
= 0,
ds
s=s1
and to write
m 12 = t A (s2 ),
M12 = t B (s2 ).
(32)
M31
(33)
dm 12
dM12
m 12
= 1;
ds2
ds2
(28)
(29)
(30)
m 23
,
m 12
m 12
= M32 M21 (1 M23 M32 )
,
m 23
B
A
(31)
(34)
(35)
If the reference curve is a geodesic (1 0), then the curvature of its parallel is
2 = (1 M12 M21 )/(M12 m 12 ).
(36)
1
(1 e2 sin2 )2
= 2
.
2
b
b (1 + k 2 sin2 )2
(37)
(38)
123
48
C. F. F. Karney
1 + k 2 sin2 2
M12 = cos 1 cos 2 +
sin 1 sin 2
1 + k 2 sin2 1
sin 1 cos 2 (J (2 ) J (1 ))
,
(39)
1 + k 2 sin2 1
where
J ( ) =
0
k 2 sin2
d
1 + k 2 sin2
s
=
b
0
1
1 + k 2 sin2
d
= I1 ( ) I2 ( ).
(40)
I2 ( ) = A2 +
C2l sin 2l ,
(41)
25 6
256
C23 =
C24 =
C25 =
C26 =
1
m 12
d12
=
.
d1
a cos 2 cos 2
4 Inverse problem
The inverse problem is intrinsically more complicated than
the direct problem because the given included angle, 12 in
Fig. 1, is related to the corresponding angle on the auxiliary
sphere 12 via an unknown equatorial azimuth 0 . Thus, the
inverse problem inevitably becomes a root-finding exercise.
I tackle this problem as follows: Assume that 1 is known.
Solve the hybrid geodesic problem: given 1 , 2 , and 1 , find
12 corresponding to the first intersection of the geodesic with
123
(43)
C21 = 21 +
C22 =
1 3
1 5
16 + 32 + ,
3 2
1 4
35 6
16 + 32 + 2048 +
5 3
5 5
48 + 256 + ,
35 4
7 6
512 + 512 + ,
63 5
1280 + ,
77 6
2048 .
+ ,
(44)
(42)
where
9 4
64
1 0, 1 2 1 , 0 12 .
l=1
A2 = (1 ) 1 + 41 2 +
(46)
49
180
(a)
ification of his method which deals with this case. Unfortunately, this sometimes requires many thousands of iterations
to converge, whereas Newtons method as described here
only requires a few iterations.
30 25
15
12 ()
135
90
To complete the solution of the inverse problem a good starting guess for 1 is needed. In most cases, this is provided by
where
assuming that 12 = 12 /w,
w = 1 e2 ((cos 1 + cos 2 )/2)2
(48)
45
0
2 = 30
15
25
0
45
90
135
180
()
1
180
(b)
and solving for the great circle on the auxiliary sphere, using
(Vincenty 1975a)
z 1 = cos 1 sin 2 sin 1 cos 2 cos 12
30
+ i cos 2 sin 12 ,
29.8
179
()
12
+ i cos 1 sin 12 ,
178
= 29
2
177
90
120
150
180
1 ()
Fig. 4 The variation of 12 as a function of 1 for 1 = 30 , various 2 , and the WGS84 ellipsoid. a 12 for 2 = 0 , 15 , 25 ,
and 30 . For |2 | < |1 |, the curves are strictly increasing, while for
2 = 1 , the curves are non-decreasing with discontinuities in the
slopes at 1 = 90 . An enlargement of the top right corner of a is
shown in b with 2 [29 , 30 ] at intervals of 0.2
2
= 2
m12d1
m d sec
12
(49)
2 = ph z 2 ,
(50)
Value
Eq.
30.123 45
Given
30.123 44
Given
12
0.000 05
Given
(6)
(6)
(48)
12
12 /w
12
(51)
(49)
(50)
s12
4.944 208 m
a w
12
1
A
1 = ph z 1 ,
= 1
Determine 12
Solution
123
50
C. F. F. Karney
(52)
Define a plane coordinate system (x, y) centered on the antipodal point where
= f a cos2 1 is the unit of length, i.e.,
12 = +
x, 2 = 1 + y.
a cos 1
a
(53)
(54)
123
2
1
y/
x/(1+)
O
y
(55)
(56)
6 Area
The last geodesic algorithm I present is for geodesic areas.
Here, I extend the method of Danielsen (1989) to higher
order so that the result is accurate to round-off, and I recast
his series into a simple trigonometric sum.
Let S12 be the area of the geodesic quadrilateral AF H B
in Fig. 1. Following Danielsen (1989), this can be expressed
as the sum of a spherical term and an integral giving the
ellipsoidal correction,
S12 = S(2 ) S(1 ),
(58)
S( ) = c + e a cos 0 sin 0 I4 ( ),
(59)
2 2
51
Value
Eq.
30
Given
29.9
Given
Given
179.8
161.914
Table 4
Given
12
179.8
Given
0.382 344
(53)
0.220 189
(53)
0.231 633
(55)
Qty.
Value
Eq.
30
Given
29.9
12
(0)
Solve triangle N E A
(56)
a2
b2 tanh1 e
+
2
2
e
(60)
t (x) = x +
t (e2 ) t (k 2 sin2 )
sin
e2 k 2 sin2
d ,
(61)
x 1 + 1 sinh1 x.
C4l cos((2l + 1) ),
(62)
l=0
C40 =
1 2
15 e
1
20
4 4
105 e
8 6
315 e
64 8
3465 e
128 10
9009 e
32 8
+ 3003
e k2
1
1 2
8 4
80 6
+ 42
63
e + 693
e 9009
e k4
1
1 2
10 4
72
99
e + 1287
e k6
1
1 2
1 10
+ 110
143
e k 8 156
k + ,
1
1 2
2 4
16
32
= 180
315
e + 945
e 10395
e6 + 27027
e8 k 2
1
1 2
4
40
252
378
e + 2079
e4 27027
e6 k 4
1
1 2
2
+ 360
495
e + 1287
e4 k 6
1
2
5
495
1287
e2 k 8 + 3276
k 10 + ,
C41
2
3
(10)
(11)
(12)
(6)
(5), (45)
(11)
(12)
k2
(9)
(16)
(8)
(8)
12
2 1
12
12 12
J (1 )
(40)
(40)
Determine 12
(0)
J (2 )
m 12
57 288.000 110 m
(38)
d12 /d1
(46)
12 /(d12 /d1 )
1 + 1
Next iteration
where
(6)
Update 1
Expanding the integrand in powers of e2 and k 2 and performing the integral gives
I4 ( ) =
Solve triangle N E B
where
c2 =
1 2
35 e
2 4
105 e
12
16 6
1155 e
8
45045
e6 k 4
1
1
2
1800
2475
e2 + 6435
e4 k 6
1
2
1
+ 1925
5005
e2 k 8 2184
k 10 + ,
1
1
2
= 17640
24255
e2 + 63063
e4 k 6
1
1
5
10780
14014
e2 k 8 + 45864
k 10 + ,
1
1
1
= 124740
162162
e2 k 8 58968
k 10 + ,
C42 =
C43
C44
C45 =
1
2100
2
1
3150 e
10
1
792792 k
+ .
4
4
17325 e
(63)
123
52
C. F. F. Karney
Table 7 The calculation of the area between the equator and the geodesic specified by 1 = 40 , 1 = 30 , and s12 = 10 000 km. This
uses intermediate values computed in Table 2
Qty.
Value
Eq.
Qty.
Value
Eq.
30
Given
Table 2
29.9
Given
30
Table 2
Table 5
Table 2
Table 2
Table 2
Solve triangle N E A
1
(6)
(10)
k2
Table 2
(11)
Compute area
(12)
(62)
Solve triangle N E B
I4 (1 )
I4 (2 )
(62)
(6)
S(1 )
(59)
(5), (45)
(59)
S(2 )
(11)
(12)
S12
84 275 623.422 35
km2
(58)
(7)
s2
(7)
s12
s 2 s1
(8)
(8)
12
2 1
Solution
1
s12
sin 21 (2 + 1 )
12
2 1
=
.
tan
2
2
cos 21 (2 1 )
(64)
7 Implementation
The algorithms described in the preceding sections can be
readily converted into working code. The polynomial expansions, Eqs. (17), (18), (21), (24), (25), (42), (43), and (63),
123
53
B
B
This leads to the following specification for the generalized gnomonic projection. Let the center point be A; for
an arbitrary point B, solve the inverse geodesic problem
between A and B; then B projects to the point
x = sin 1 ,
dt
y = cos 1 , = m 12 /M12 ;
(65)
the projection is undefined if M12 0. In the spherical limit, this becomes the standard gnomonic projection,
= a tan 12 (Snyder 1987, p. 165). The azimuthal scale
is 1/M12 and the radial scale, found by taking the derivative
2 . The reverse projection
d/ds12 and using Eq. (28), is 1/M12
is found by computing 1 = ph(y + i x), finding s12 using
2 (i.e., the radial
Newtons method with d/ds12 = 1/M12
scale), and solving the resulting direct geodesic problem.
In order to gauge the usefulness of the ellipsoidal gnomonic projection, consider two points on the earth B and C,
map these points to the projection, and connect them with
a straight line in this projection. If this line is mapped back
onto the surface of the earth, it will deviate slightly from
the geodesic BC. To lowest order, the maximum deviation h
occurs at the midpoint of the line segment BC; empirically,
I find
l2
( K t)t,
(66)
32
where l is the length of the geodesic, K is the Gaussian curvature, K is evaluated at the center of the projection A,
and t is the perpendicular vector from the center of projection to the geodesic. The deviation in the azimuths at the
end points is about 4h/l and the length is greater than the
geodesic distance by about 83 h 2 /l. In the case of an ellipsoid
of revolution, K is found by differentiating Eq. (37) with
respect to and dividing the result by the meridional radius
of curvature to give
h=
K =
4a 2
(67)
where is a unit vector pointing north. Bounding the magnitude of h, Eq. (66), over all the geodesics whose end points
lie within a distance r of the center of projection, gives (in
the limit that f and r are small)
f r3
h
.
(68)
r
8 a3
The maximum value is attained when the center of projection
is at = 45 and the geodesic is running in an eastwest
direction with the end points at bearings 45 or 135 from
the center.
Others have proposed different generalizations of the gnomonic projection. Bowring (1997) and Williams (1997) give
a projection in which great ellipses project to straight lines;
Letovaltsev (1963) suggests a projection in which normal
sections through the center point map to straight lines. Empirically, I find that h/r is proportional to r/a and r 2 /a 2 for
123
54
C. F. F. Karney
1000 km
9 Conclusions
2000 km
Fig. 8 The coast line of Europe and North Africa in the ellipsoidal gnomonic projection with center at (45 N, 12 E) near Venice. The graticule
lines are shown at multiples of 10 . The two circles are centered on the
projection center with (geodesic) radii of 1000 and 2000 km. The data
for the coast lines is taken from GMT (Wessel and Smith 2010) at low
resolution
(c d z )(b a) (a b z )(d c)
,
(b a) (d c) z
(69)
123
c (b a)(b a) (a b z )z (b a)
.
|b a|2
The classical geodesic problems entail solving the ellipsoidal triangle N AB in Fig. 1, whose sides and angles are
represented by 1 , 2 , s12 and 1 , 2 , 12 . In the direct problem 1 , 1 , and s12 are given, while in the inverse problem
1 , 12 , and 2 are specified; and the goal in each case is to
solve for the remaining side and angles. The algorithms given
here provide accurate, robust, and fast solutions to these problems; they also allow the differential and integral quantities
m 12 , M12 , M21 , and S12 to be computed.
Much of the work described here involves applying standard computational techniques to earlier work. However, at
least two aspects are novel: (1) this paper presents the first
complete solution to the inverse geodesic problem. (2) The
ellipsoidal gnomonic projection is a new tool to solve various
geometrical problems on the ellipsoid.
Furthermore, the packaging of these various geodesic
capabilities into a single library is also new. This offers a
straightforward solution of several interesting problems. Two
geodesic projections, the azimuthal equidistant projection
and the Cassini-Soldner projection, are simple to write and
their domain of applicability is not artificially restricted, as
would be the case, for example, if the series expansion for the
Cassini-Soldner projection were used (Snyder 1987, 13);
the scales for these projections are simply given in terms of
m 12 and M12 . Several other problems can be readily tackled
with this library, e.g., solving other ellipsoidal trigonometry problems and finding the median line and other maritime
boundaries. These and other problems are explored in Karney (2011). The web page http://geographiclib.sf.net/geod.
html provides additional information, including the Maxima
(2009) code used to carry out the Taylor expansions and a
JavaScript implementation which allows geodesic problems
to be solved on many portable devices.
Acknowledgments I would like to thank Rod Deakin, John Nolton,
Peter Osborne, and the referees of this paper for their helpful comments.
Open Access This article is distributed under the terms of the Creative
Commons Attribution License which permits any use, distribution, and
reproduction in any medium, provided the original author(s) and the
source are credited.
References
Beltrami E (1865) Risoluzione del problema: Riportare i punti
di una superficie sopra un piano in modo che le linee
geodetiche vengano rappresentate da linee rette. Annali
Mat Pura Appl 7:185204. http://books.google.com/books?
id=dfgEAAAAYAAJ&pg=PA185
Bessel FW (1825) ber die Berechnung der geographischen Lngen und Breiten aus geodtischen Vermessungen. Astron
Nachr 4(86):241254. http://adsabs.harvard.edu/abs/1825AN......
4..241B [translated into English by Karney CFF and Deakin RE
as The calculation of longitude and latitude from geodesic measurements. Astron Nachr 331(8):852861 (2010)]
Bowring BR (1997) The central projection of the spheroid and surface
lines. Surv Rev 34(265):163173
Bugayevskiy LM, Snyder JP (1995) Map projections: a reference manual. Taylor & Francis, London
Christoffel EB (1868) Allgemeine Theorie der geodtischen Dreiecke.
Math Abhand Knig Akad der Wiss zu Berlin 8:119176. http://
books.google.com/books?id=EEtFAAAAcAAJ&pg=PA119
Clairaut AC (1735) Dtermination gometrique de la perpendiculaire
la mridienne trace par M Cassini. Mm de lAcad Roy des
Sciences de Paris 1733:406416. http://books.google.com/books?
id=GOAEAAAAQAAJ&pg=PA406
Clenshaw CW (1955) A note on the summation of Chebyshev series.
Math Tables Other Aids Comput 9(51):118120
Danielsen JS (1989) The area under the geodesic. Surv Rev 30(232):
6166
Gauss CF (1828) Disquisitiones Generales circa Superficies Curvas. Dieterich, Gttingen. http://books.google.com/books?
id=bX0AAAAAMAAJ [translated into English by Morehead JC
and Hiltebeitel AM as General investigations of curved surfaces
of 1827 and 1825. Princeton Univ Lib (1902) http://books.google.
com/books?id=a1wTJR3kHwUC]
Helmert FR (1880) Die Mathematischen und Physikalischen Theorieen der Hheren Geodsie, vol 1. Teubner, Leipzig. http://books.
google.com/books?id=qt2CAAAAIAAJ [translated into English
by Aeronautical chart and information center (St Louis, 1964)
as Mathematical and physical theories of higher geodesy, part 1.
http://geographiclib.sf.net/geodesic-papers/helmert80-en.html]
Jacobi CGJ (1891) ber die Curve, welche alle von einem Punkte ausgehenden geodtischen Linien eines Rotationsellipsoides
berhrt. In: Weierstrass KTW (ed) Gesammelte Werke, vol 7.
Reimer, Berlin, pp 7287. http://books.google.com/books?id=_
09tAAAAMAAJ&pg=PA72 [op post, completed by Wangerin
FHA]
55
Karney CFF (2011) Geodesics on an ellipsoid of revolution. Tech rep,
SRI International. http://arxiv.org/abs/1102.1215v1
Karney CFF (2012) GeographicLib, version 1.22. http://geographiclib.
sf.net
Legendre AM (1806) Analyse des triangles tracs sur la surface dun
sphrode. Mm de lInst Nat de France, 1st sem, pp 130161.
http://books.google.com/books?id=-d0EAAAAQAAJ&pg=PA
130-IA4
Letovaltsev IG (1963) Generalization of the gnomonic projection for a
spheroid and the principal geodetic problems involved in the alignment of surface routes. Geod Aerophotogr 5:271274 [translation
of Geodeziya i Aerofotosemka 5:6168 (1963)]
Maxima (2009) A computer algebra system, version 5.20.1. http://
maxima.sf.net
Olver FWJ, Lozier DW, Boisvert RF, Clark CW (eds) (2010) NIST
handbook of mathematical functions. Cambridge University Press,
London. http://dlmf.nist.gov
Oriani B (1806) Elementi di trigonometria sferoidica, Pt 1. Mem
dellIst Naz Ital 1(1):118198. http://books.google.com/books?
id=SydFAAAAcAAJ&pg=PA118
Oriani B (1808) Elementi di trigonometria sferoidica, Pt 2.
Mem dellIst Naz Ital 2(1):158. http://www.archive.org/stream/
memoriedellistit21isti#page/1
Oriani B (1810) Elementi di trigonometria sferoidica, Pt 3.
Mem dellIst Naz Ital 2(2):158. http://www.archive.org/stream/
memoriedellistit22isti#page/1
Rapp RH (1993) Geometric geodesy, part II. Tech rep, Ohio State University. http://hdl.handle.net/1811/24409
Snyder JP (1987) Map projectiona working manual. Professional Paper 1395, US Geological Survey. http://pubs.er.usgs.gov/
publication/pp1395
Vermeille H (2002) Direct transformation from geocentric coordinates
to geodetic coordinates. J Geod 76(9):451454
Vincenty T (1975a) Direct and inverse solutions of geodesics on
the ellipsoid with application of nested equations. Surv Rev
23(176):8893 [addendum: Surv Rev 23(180):294 (1976)]
Vincenty T (1975b) Geodetic inverse solution between antipodal
points. http://geographiclib.sf.net/geodesic-papers/vincenty75b.
pdf (unpublished report dated Aug 28)
Wessel P, Smith WHF (2010) Generic mapping tools, 4.5.5. http://gmt.
soest.hawaii.edu/
Williams R (1997) Gnomonic projection of the surface of an ellipsoid.
J Navig 50(2):314320
123