1、原理经纬度坐标系转屏幕坐标系,在用屏幕坐标系用射线检测的方式获取高度。

2、上代码

function getHeight(p) {
        var c = viewer.scene.cartesianToCanvasCoordinates(Cesium.Cartesian3.fromDegrees(Number(p.x), Number(p.y)));
        if (Cesium.defined(c)) {
            let d = viewer.scene.pickPosition(c);
            if (Cesium.defined(d) && pt instanceof Cesium.Cartesian3) {
                var c = Cesium.Cartographic.fromCartesian(pt);
                return {
                    x: Cesium.Math.toDegrees(c.longitude),
                    y: Cesium.Math.toDegrees(c.latitude),
                    z: c.height
                }
            }
        }
    }

3、如果你没有获取到有可能是没有加深度检测


```javascript
viewer.scene.globe.depthTestAgainstTerrain = true; //深度检测 

   
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐