handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
//鼠标左键
handler.setInputAction(function (movement) {
let earthPosition = viewer.scene.globe.pick(viewer.camera.getPickRay(movement.position), viewer.scene);//todo 下方的有时无法获取,用此方案
// let ellipsoid = viewer.scene.globe.ellipsoid;
// let cartographic = ellipsoid.cartesianToCartographic(earthPosition);
// let lat = Cesium.Math.toDegrees(cartographic.latitude);
// let lon = Cesium.Math.toDegrees(cartographic.longitude);
// let earthPosition = viewer.scene.pickPosition(movement.position);//todo 注意这个有时候获取不到
console.log('earthPosition--->',earthPosition)
if (Cesium.defined(earthPosition)){
let cartographic = Cesium.Cartographic.fromCartesian(earthPosition);
// 经纬度
let lon = Cesium.Math.toDegrees(cartographic.longitude).toFixed(8);
let lat = Cesium.Math.toDegrees(cartographic.latitude).toFixed(8);
pointsArr.push({longitude:Number(lon),latitude:Number(lat)})
//模型高度
let height = cartographic.height;
if (Number(height) < 0) {
let ray = viewer.camera.getPickRay(movement.position);
earthPosition = viewer.scene.globe.pick(ray, viewer.scene);
}
}
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
网友评论