cesium 2 获取鼠标当前位置的经纬度高度

2 获取鼠标当前位置的经纬度高度

鼠标移动时,实时获取当前鼠标位置的经纬度,相机高度与地图层级。可以在info.vue组件找到实际用例。同时也可以监听鼠标单击等事件来做一些业务应用。

viewer.scene.postRender.addEventListener(() => {
  // 要判断是否定义,不然会有渲染BUG
  if (!Cesium.defined(viewer.scene.globe._surface._tilesToRender[0]))
    return;

  // 获取地图层级
  this.level = viewer.scene.globe._surface._tilesToRender[0].level;
  // 获取相机高度
  this.cameraHeight = viewer.camera.positionCartographic.height.toFixed(
    1
  );
});

// 鼠标移动显示经纬高度
viewer.cesiumWidget.screenSpaceEventHandler.setInputAction(e => {
  let ray = viewer.camera.getPickRay(e.endPosition);
  let cartesian = viewer.scene.globe.pick(ray, viewer.scene);

  // 计算经纬高度
  if (Cesium.defined(cartesian)) {
    this.lonLatAlt = HelperUtils.getLonLatAlt(cartesian);
  } else {
    this.lonLatAlt = [];
  }
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

项目地址:https://github.com/Couy69/cesium-vue-tools,请勿转载

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

推荐阅读更多精彩内容