从地图上选择坐标
注意:调用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);