I'm working with a 3D model of the earth (WGS84).

The input to my problem is a geocentric lat-long. Is there an efficient way to convert this to a geodetic lat-long?

My initial attempt to solve this seems to work correctly: First, convert the geocentric lat-long back to it's corresponding point in 3D space. Then, feed that XYZ into a library function that returns the geodetic latitude.

It's straightforward, but the conversion from XYZ to geodetic lat-long is not cheap because it uses some fixed number of iterations to come up with a reasonably accurate result... I am looking for something that runs faster.

Given the geocentric latitude, is there a more efficient route I can take to get the corresponding geodetic latitude?

  • 1
    I provide references at gis.stackexchange.com/a/108220/664, conversion formulas (among geocentric, geodetic, and 3D earth-centered coordinates) at gis.stackexchange.com/a/30512/664, a discussion of these and other spheroidal reference systems (plus more references) at gis.stackexchange.com/a/26021/664, and more formulas at gis.stackexchange.com/a/20250/664, where the fundamental relationship between the geodetic latitude f and geocentric latitude t is given in terms of the semimajor axis a and semiminor axis b as (b/a)tan(f) = tan(t).
    – whuber
    Aug 4, 2015 at 14:29
  • One of the links that was referenced (the Wikipedia article on Latitude) uses a different equation: t = atan((1 - eccintricity^2) * tan(f)). This formula gave me more accurate results than the aforementioned formula using major and minor radii. (I don't know what the relationship between eccentricity and the radii is, but maybe those equations are nearly equivalent.)
    – user8709
    Aug 4, 2015 at 23:59


Browse other questions tagged or ask your own question.