How do I convert altitude to Mean Sea Level altitude?

1142
2
03-01-2019 01:31 PM
NathanMellor
Occasional Contributor

For whatever dumb reason, Android location altitude is WS84 altitude and not the one which most users expect, which is mean sea level altitude.

Can I make the conversion with ArcGIS Runtime? From WGS84 to EGM2008 or something.

I thought I was real smart and could figure it out. 

Geometry vprojected = GeometryEngine.project(currentLocation, SpatialReference.create(4326, 3855));


This looks like what a reasonable person would do to project to Mean Sea Level. The vertical spatialreference is EGM2008.

It doesn't crash or give any error messages.

The problem:

It doesn't change the z value of the point. Not the slightest bit.

What do I need to do?

0 Kudos
2 Replies
NathanMellor
Occasional Contributor

And in case it comes up:

DatumTransformation transform = TransformationCatalog.getTransformation(SpatialReference.create(4326), SpatialReference.create(4326,3855));

returns null.

0 Kudos
MikeWilburn
Esri Contributor

Hi Nathan,

Vertical datum transformations are not currently supported in the Runtime. Calling the `project` method will only transform the horizontal coordinates between two different datums or spatial references.

There are, however, a number of vertical coordinate transformations available in our desktop software ArcGIS Pro that can handle this for you. Here's a link you may find helpful: Vertical coordinate systems—Properties of maps | ArcGIS Desktop 

To vertically transform between WGS 1984 and EGM 2008, I believe you'd require geographic transformation WKID `110018` or `110019`.

Cheers,

Mike

0 Kudos