Sign up ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

So I've been doing a lot of searching and haven't found exactly what I'm looking for. My math skills are a bit rusty, so I haven't had luck deriving this on my own.

What I'm looking for is an equation (or set of equations) where I can plug in starting and ending spherical coordinates, plus a percentage (ie [0,1]) and output spherical coordinates of some point in between (ie, progress along a great circle).

The idea is basically to chart the progress of a plane between two cities and draw it on a globe or map.


  • lat1,lon1
  • lat2,lon2
  • r (radius)
  • p (progress, from 0->1)


  • lat_x,lon_x (point in-between)
share|cite|improve this question
See this question for some ideas. Once you figure out the initial compass direction Clairaut's relation probably also helps. –  Jyrki Lahtonen May 6 '13 at 19:52
I appreciate the suggestion. What I'm really looking for is an equation already derived that I can plug numbers into. Haven't had a luck deriving anything on my own... –  Robert C May 6 '13 at 21:27

2 Answers 2

Ok, so I found what I was looking for at Ed Williams' awesome Aviation Formulary:

Given (lat1,lon1), (lat2,lon2), and progress fraction f=[0,1]

d = acos(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon1 - lon2))
A = sin((1 - f) * d) / sin(d)
B = sin(f * d) / sin(d)
x = A * cos(lat1) * cos(lon1) + B * cos(lat2) * cos(lon2)
y = A * cos(lat1) * sin(lon1) + B * cos(lat2) * sin(lon2)
z = A * sin(lat1) + B * sin(lat2)

lat_f = atan2(z, sqrt(x^2 + y^2))
lon_f = atan2(y,x)

share|cite|improve this answer

Perhaps the most succinct and easiest answer (from

"You are given two points u and v on the unit sphere. Think of them as position vectors u⃗ and v⃗ . It is easy enough to calculate cross products. Calculate w⃗ =(u⃗ ×v⃗ )×u⃗ . Then w⃗ and u⃗ are unit vectors perpendicular to each other and in the plane of the circle. So a parameterization of the circle is R⃗ (t)=u⃗ cost+w⃗ sint"

Correction: w is only a unit vector if u and v are perpendicular.

share|cite|improve this answer
I have seen another paremeterization as R(t) = u * sin(th0(t)) / sin(th) + v * sin(th1(t)) / sin(th), with th being the total angle between u and v, th0 the angle between u and R and th1 the angle between R and v. Though probably related, I still don't see how this expression can be deduced from the one above. –  Jose Ospina Apr 23 at 10:20

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.