Get Ground Height CesiumJS

Is there a way to get the ground height for a given position in CesiumJS? I tried the function scene.globe.getHeight, but it returns undefined.

//marker is a point on map. var marker = {latitude: 61.08658108795938, longitude: -99.64592791446208}; var height = scene.globe.getHeight( new Cesium.Cartographic(marker.longitude, marker.latitude ) );//undefined 

Thanks.

+6
source share
2 answers

For this you should use sampleTerrain . Here is an example:

 // Construct the default list of terrain sources. var terrainModels = Cesium.createDefaultTerrainProviderViewModels(); // Construct the viewer, with a high-res terrain source pre-selected. var viewer = new Cesium.Viewer('cesiumContainer', { terrainProviderViewModels: terrainModels, selectedTerrainProviderViewModel: terrainModels[1] // Select STK High-res terrain }); // Get a reference to the ellipsoid, with terrain on it. (This API may change soon) var ellipsoid = viewer.scene.globe.ellipsoid; // Specify our point of interest. var pointOfInterest = Cesium.Cartographic.fromDegrees( -99.64592791446208, 61.08658108795938, 5000, new Cesium.Cartographic()); // [OPTIONAL] Fly the camera there, to see if we got the right point. viewer.camera.flyTo({ destination: ellipsoid.cartographicToCartesian(pointOfInterest, new Cesium.Cartesian3()) }); // Sample the terrain (async) and write the answer to the console. Cesium.sampleTerrain(viewer.terrainProvider, 9, [ pointOfInterest ]) .then(function(samples) { console.log('Height in meters is: ' + samples[0].height); }); 
+3
source

This is an alternative:

 var marker= new Cesium.Cartesian3.fromDegrees(lon,lat, 0); markers.push(marker); var cartographicPositions = Cesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(markers); var HeightCheck=setInterval(function(){ if (cesiumTerrainProviderHeightmaps.ready) { clearInterval(HeightCheck); var promise = Cesium.sampleTerrain(cesiumTerrainProviderHeightmaps, 11, cartographicPositions); Cesium.when(promise, function(cartographicPositions) { // you got the altitudes }); } else { // "Waiting for height data of terrain...." } },1000); 
0
source

Source: https://habr.com/ru/post/981900/


All Articles