I am using Cesium to create point in a map. The point will be then flyable with a drone.

I have the following problem,

1) The user set a point altitude to 20 meters in a 2D flat map.

2) The point need to be create at the real world location (long/lat) + 20 meters (altitude).

3) The point will be visible on a 3D map, so at the location (long/lat) + 20 meters (altitude).


Now, from what I understand, Cesium altitude is using WSG84, and my server (that I have no control on) is using MSL.

from what I have seen on Internet I require a geoID to compute the calculation between a WSG84 point and MSL.

it is a straightforward procedure to subtract an interpolated geoid height, N, from a GPS ellipsoidal height, h, to obtain an orthometric height or a height above mean sea level (AMSL), H: H = h - N

I found for example this lib.

I have 3 questions about those procedure =>

1) Is everything I say correct ? am I going the right path ?

2) In the app, there is a flight tracking mode where a user can track a drone flying, but the coordinate come from the server in MSL, I get an update every 100ms, with all those additional calculation, will this part be a problem ?

2) Cesium is of course not 100% accurate, and I believe also that whatever geoID I use (for Japan region) will probably not be that accurate too. What average marge of error is to be expected ?

  • I believe you want a geoid not a geoID. I can't speak for your API but you will want a transformation from MSL to ellipsoidal heights and that will be based on your area.. as Japan is geoactive some parts will move in different direction and/or magnitude to others which further complicates the issue. Transformations can be parametric or displacement grid, have a search of the Japan mapping agency to find a geoid adjustment model then run that in reverse to find your ellipsoidal height. – Michael Stimson Jun 27 at 3:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.