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,请勿转载

你可能感兴趣的:(cesium 2 获取鼠标当前位置的经纬度高度)