Elevation off by 30m?

So I was playing around within this sandbox: Cesium Sandcastle

I added the following few lines of code to be able to grab elevation data at a specified latitude and longitude:

const samplePos = [Cesium.Cartographic.fromDegrees(-77.13295208170246, 38.674469884794405)];

let promise = Cesium.sampleTerrainMostDetailed(worldTerrain, samplePos);

Cesium.when(promise, () => {
      console.log(samplePos[0].height);
});

However, what I notice it returning in the console seems to be off by -30 meters compared to the values I get elsewhere from sources like https://www.maps.ie/coordinates.html for example.

Am I doing something wrong or misunderstanding something?

@Quetzal1111

I have looked at various sources of elevation data such as:

https://www.maps.ie/coordinates.html
https://www.advancedconverter.com/map-tools/find-altitude-by-coordinates

I noticed that for many latitude and longitude values, there are discrepancies in the elevation data. Moreover, these discrepancies vary in terms of magnitude.

For instance, at the point (25,45) we get the elevation values:

maps.ie: 790m
advancedconverter: 792m
Cesium World Terrain: 787.97m

The Cesium World Terrain uses elevation data from a variety of sources. You can find more information about Cesium World Terrain here:

Also note that CesiumJS returns the height from the ellipsoid. The website you referenced gives the height above sea level. This should account for the 30m discrepancy that you noticed.

Let me know if you have any other questions or concerns.

Best,
Sam

1 Like

Sam,
can you possibly provide some details of how Cesium ion converts elevation data that was referenced to MSL into Ellipsoidal elevation? I am trying to work back from the value returned by sampleTerrainMostDetailed on my custom Terrain to get an elevation relative to MSL (i.e. Iā€™m trying to get the original value of my data before it was converted by ion), using the EGM2008 Geoid Model to get difference between Ellipsoid & Geoid, but still getting differences of around 2m.

Regards

@kcollins

First, welcome to the community!

Our terrain converter uses EGM96 as the mean sea level model. Unfortunately, EGM96 is somewhat low resolution, which is almost certainly the cause of the 2 meter elevation difference that you are noticing. Internally there has been talk of upgrading when we retile terrain. EGM2008 seems to be a higher resolution alternative. However, I do not have a GitHub issue on this matter available for you to track.

-Sam