GuLiMmo
2024-03-01 d87242f609a6ebaba6f2b45b2c0b41f961e92d4b
src/hooks/use-cesium-tsa.ts
@@ -184,7 +184,7 @@
      }
    })
  }
  // 添加点击事件
  // 添加左键点击事件
  let leftClickHandler: Cesium.ScreenSpaceEventHandler
  const addClickEvent = (sid: string, cb: Function) => {
    if (leftClickHandler) {
@@ -198,9 +198,25 @@
      }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
  }
  // 移除事件
  // 移除左键事件
  const removeClickEvent = () => {
    leftClickHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
  }
  let rightClickHandler: Cesium.ScreenSpaceEventHandler
  const addRightClick = (sid: string, cb: Function) => {
    if (leftClickHandler) {
      removeRightClickEvent()
    }
    rightClickHandler = new Cesium.ScreenSpaceEventHandler(viewer?.scene.canvas)
    rightClickHandler.setInputAction(function (click: { position: Cesium.Cartesian2 }) {
      const pick = viewer?.scene.pick(click.position)
      cb(click, pick, viewer, handler)
    }, Cesium.ScreenSpaceEventType.RIGHT_CLICK)
  }
  // 移除右键事件
  const removeRightClickEvent = () => {
    rightClickHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK)
  }
  // 添加线段
@@ -356,6 +372,8 @@
    loadGeoJson,
    removeAllDataSource,
    addClickEvent,
    removeClickEvent
    removeClickEvent,
    addRightClick,
    removeRightClickEvent
  }
}