cesium.js高度计算同步方法,cesium.js根据经纬度计算高度同步方法。官方提供的都是异步的方法有点坑,这个是我自己写的同步计算高度。
1、原理经纬度坐标系转屏幕坐标系,在用屏幕坐标系用射线检测的方式获取高度。2、上代码function getHeight(p) {var c = viewer.scene.cartesianToCanvasCoordinates(Cesium.Cartesian3.fromDegrees(Number(p.x), Number(p.y)));if (Cesium.defined(c)) {let
·
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; //深度检测
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)