从地图上选择坐标
注意:调用pickPosition 的时候 如果坐标处没有倾斜摄影表面、模型时,获取的笛卡尔坐标不准,此时要开启地形深度检测:
viewer.scene.globe.depthTestAgainstTerrain = true; //默认为false。
完整代码:
//注意注意
//若屏幕坐标处没有倾斜摄影表面、模型时,获取的笛卡尔坐标不准,此时要开启地形深度检测viewer.scene.globe.depthTestAgainstTerrain = true; //默认为false。
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (movement) {
//通过viewer.scene.pickPosition(movement.position)获取,根据窗口坐标,从场景的深度缓冲区中拾取相应的位置,返回笛卡尔坐标 此时是Cartesian2坐标。
var position = viewer.scene.pickPosition(movement.position);
console.log(position);
//笛卡尔空间直角坐标系转换为WGS84
//第一步 笛卡尔空间直角坐标系=》弧度
let cartographic = Cesium.Cartographic.fromCartesian(position)
//第二部 弧度=》WGS84经纬度
let lng = Cesium.Math.toDegrees(cartographic.longitude)
let lat = Cesium.Math.toDegrees(cartographic.latitude)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
本文介绍如何在Cesium中使用ScreenSpaceEventHandler准确获取地图上的位置,特别强调了在无模型或表面时启用地形深度检测的重要性。通过实例演示了从窗口坐标获取笛卡尔坐标并转换为WGS84的过程。

被折叠的 条评论
为什么被折叠?



