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);
cesium鼠标点击事件,监听有时无效解决方案
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。