关于Cesium地图点击不准的问题

出现这问题我遇到的一般有两种原因

  1. 因为地形深度原因导致的不准

参考博客:Cesium的拾取问题总结
解决办法:viewer.scene.globe.depthTestAgainstTerrain = true; //默认为false

  1. 页面使用了缩放的方式解决自适应问题 如:scale translate等

之前网站的时候自适应用了translate缩放,没有用rem导致cesium点击的时候,根据屏幕坐标获取的经纬度不准,拿不到点信息,后来把屏幕坐标打印出来就发现原因,虽然页面是缩放了,但是屏幕坐标还是页面原本的信息,所以对应不上,要把获取到的屏幕坐标根据缩放比例进行换算,再去获取经纬度
例子如下:

viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(){
  let x = _this.$store.state.scale_x;  // x轴的缩放比例
  let y = _this.$store.state.scale_y;  // y轴的缩放比例
  let position = {
     x: movement.position.x / x,
     y: movement.position.y / y,
  };  //  转化后的屏幕坐标
  var pickRay = viewer.camera.getPickRay(position);
  .......
})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容