请问一下各位,怎么获取某个位置的高程值?已知经纬度

Cesium源码 · jerry · 于 5年前 发布 · 12531 次阅读

请问一下各位,怎么获取某个位置的高程值?已知经纬度

共收到 9 条回复
devhu#15年前 0 个赞
scene.globe.getHeight(cartographic)
jerry#25年前 0 个赞

http://cesium.coinidea.com/docs/Cartographic.html?classFilter=Cartographic 这个就是一个对象

new Cesium.Cartographic(longitude, latitude, height)

这样还是有点问题

因为这个对象带height了

而我们要去求

admin#35年前 0 个赞
// var viewer = new Cesium.Viewer('cesiumContainer');
var viewer = new Cesium.Viewer('cesiumContainer', {
                   terrainProvider: Cesium.createWorldTerrain()
        });

document.getElementById('btn').onclick = function () {
            a();
        };
function a() {
     var terCartographic = new Cesium.Cartographic(1.98,0.6,0);
    console.log(terCartographic);
    //根据经纬度计算出地形高度。
    var terHigh =  viewer.scene.globe.getHeight(terCartographic);
    console.log(terHigh);
}
admin#45年前 0 个赞

填0试试

jerry#55年前 0 个赞

模型加载后,就在地球上,像地形一样。理论上应该也可以根据经纬度获取。

zhishiqu#65年前 0 个赞

像这样行吗?高度获取


var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
handler.setInputAction(function(event) {
	var earthPosition = viewer.scene.pickPosition(event.position);
    if(Cesium.defined(earthPosition)){
		var cartographic = Cesium.Cartographic.fromCartesian(earthPosition);
		var lon_f = Cesium.Math.toDegrees(cartographic.longitude); //lon
		var lat_f = Cesium.Math.toDegrees(cartographic.latitude); //lat
		var po_hig = cartographic.height;//这个就是获取的模型上的高度
	}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
jerry#75年前 0 个赞

@zhishiqu #6楼 谢谢!!!

GPPG#84年前 0 个赞

请问一下您是怎么解决的,我通过鼠标事件能获取,但是我只传经纬度进去earthPosition是undefined,经纬度转成了窗口坐标 let canvasPosition=this.viewer.scene.cartesianToCanvasCoordinates(Cesium.Cartesian3.fromDegrees(101.11119, 30.0111111))

    var earthPosition = this.viewer.scene.pickPosition(canvasPosition);
    console.log(canvasPosition)
    console.log(earthPosition)
    if(Cesium.defined(earthPosition)){
      var cartographic = Cesium.Cartographic.fromCartesian(earthPosition);
      var lon_f = Cesium.Math.toDegrees(cartographic.longitude); //lon
      var lat_f = Cesium.Math.toDegrees(cartographic.latitude); //lat
      var po_hig = cartographic.height;//这个就是获取的模型上的高度
      console.log(po_hig)
    }
	这样写有什么问题吗
a64852791#94年前 0 个赞

8楼问题解决了没 我也碰到类似的需求了

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics