Search code examples
iosiphonegisgeospatialcllocation

iOS CLLocation Altitude Field - Ellipsoidal or Geoidal?


I was wondering if anyone would be able to provide insight into whether or not the altitude returned by the CLLocation object is an Ellipsoidal height or a Geoidal height?

I know over in the Android world that the Location class has a member 'Altitude' which is defined as being 'meters above the WGS 84 reference ellipsoid'. This makes the value returned an Ellipsoidal Altitude and the results of a lot of testing seem to back this up.

However, the documentation for the CLLocation class does not make it clear what the altitude member in that class refers to (geoidal or ellipsoidal). A lot of testing has led me to believe that the alittudes are in fact geoidal heights but there is no documentation about whether this is true or not and if it is true, what geoid the heights are based off of (EGM96, Geoid 12B, Geoid 18, etc...). For my application's purpose I need to be able to get altitudes returned from CLLocation objects to be ellipsoidal heights (i.e. add the geoidal undulation calculated from whatever geoid model iOS is using) so that I can then apply a correction from a different geoid that a user has selected.

If anyone has any insight into this topic I would greatly appreciate it!


Solution

  • From altitude documentation,

    Discussion

    Positive values indicate altitudes above sea level. Negative values indicate altitudes below sea level.

    https://developer.apple.com/documentation/corelocation/cllocation/1423820-altitude#declarations

    and since geoid is a model of global mean sea level we can infer that returned heights are above the geoid, or orthometric.

    https://en.m.wikipedia.org/wiki/Orthometric_height

    I couldn't find any reference about the geoid model used in IOS.