GPS Altitude - Ellipsoidal or Geoidal?

Hello all,


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!

Replies

Hi cbisbee


This was exactly the question that led me to the forums today. When I searched for CLLocation and altitude I found your Post. I am working on an aviation app right now and I also need to exactly know what's the reference for the altitude. In the CLLocation documentation I read:


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


Despite the fact that the word "mean" is missing (Mean Sea Level MSL) to me it also looks like Geoidal height. For me any more precise information would also be appreciated.

Most likely you read this. The most interesting for me was :

MSL also has slight hills and valleys that are similar to the land surface but much smoother. However, zero elevation as defined by Spain is not the same zero elevation defined by Canada, which is why locally defined vertical datums differ from each other.


h ttps://www.esri.com/news/arcuser/0703/geoid1of3.html

Great question! CoreLocation altitude is indeed altitude above mean sea level (MSL), so it is a geoidal altitude. The reference geoid is currently EGM2008.
  • @Frameworks Engineer Thank you for clarifying this.

    My project evolved and now I have a feature request that requires to solely get the ellipsoid height (WGS84). I could not find any property to get this. Is there any change to get the ellipsoid height or the used geoid undulation to translate the given geoid height from CLLocationManager back to ellipsoid height? If not does anyone know a third party lib for conversion using EGM2008?

Add a Comment