| | |
| | | } |
| | | }) |
| | | } |
| | | // 添加点击事件 |
| | | // 添加左键点击事件 |
| | | let leftClickHandler: Cesium.ScreenSpaceEventHandler |
| | | const addClickEvent = (sid: string, cb: Function) => { |
| | | if (leftClickHandler) { |
| | |
| | | } |
| | | }, 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) |
| | | } |
| | | |
| | | // 添加线段 |
| | |
| | | loadGeoJson, |
| | | removeAllDataSource, |
| | | addClickEvent, |
| | | removeClickEvent |
| | | removeClickEvent, |
| | | addRightClick, |
| | | removeRightClickEvent |
| | | } |
| | | } |