Given a geodesic line (starting point and initial azimuth) is there an algorithm to find the longitude of the [first] crossing of a given parallel?

I have already checked with Clairaut's constant that the geodesic will reach said parallel, so the crossing exists.

Or should I iterate the direct problem with different lengths until I get the endpoint on the parallel?

1 Answer 1


Yes, this problem is readily solved and I discuss it in Section 10 of Geodesics on an ellipsoid of revolution; it's problem 1 in Table 4. (The problem is solved as part of the solution of the inverse geodesic problem.) You reduce the problem to one on the auxiliary sphere by converting the two latitudes to reduced latitudes (the azimuth doesn't need to be converted), solve for the spherical arc length between the end points as an exercise in spherical trigonometry (you'll have to decide which crossing of the target latitude you're interested in). Then solve the direct problem from the given starting point with the spherical arc length you've just found; GeographicLib lets you solve the direct problem in this way.

If you provide me with a specific problem, I'll give you the solution using MATLAB.

  • Thanks. I need to implement it in C++, so Matlab code is only of partial help. I will have a look at the paper and see if I have any leftover questions.
    – Federico
    Aug 2, 2017 at 8:38
  • Take a look at the function Lambda12 in Geodesic.cpp. This solves for problem (but it isn't part of the advertized API).
    – cffk
    Aug 2, 2017 at 10:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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