吉安感知网项目-前端
shuishen
2026-02-03 89380e6260a75d1d3b94de687ebcc2f50d50659d
applications/task-work-order/src/components/map-container/common-cesium-map.vue
@@ -66,6 +66,22 @@
let initialized = false
let removeCameraListener = null
const preventDefault = event => {
   event.preventDefault()
   return
}
const cesiumContextMenu = (isAdd = true) => {
   let cesium = document.getElementById(mapId)
   if (!cesium) return
   if (isAdd) {
      cesium.addEventListener('contextmenu', preventDefault)
   } else {
      cesium.removeEventListener('contextmenu', preventDefault)
   }
}
const initMap = async () => {
   if (initialized) return
   initialized = true
@@ -77,9 +93,9 @@
      boundary: props.boundary,
      contour: props.contour,
   })
   cesiumContextMenu(true)
   viewer.value = viewInstance.value.getViewer()
   if (props.showAdminBoundary) {
      console.log(props.zoomToBoundary,'props.zoomToBoundary')
      adminBoundarySources = await loadJaAdminBoundary(viewer.value, {
         zoomTo: props.zoomToBoundary,
      })
@@ -119,13 +135,15 @@
   if (removeCameraListener) removeCameraListener()
   removeJaAdminBoundary(viewer.value, adminBoundarySources)
   viewInstance.value?.viewerDestroy?.()
   cesiumContextMenu(false)
})
const getMap = () => ({ viewer: viewer.value, publicCesium: viewInstance.value })
const getViewer = () => viewer.value
const getPublicCesium = () => viewInstance.value
const flyBoundary = () => adminBoundarySources.flyBoundary()
defineExpose({ getMap, getViewer, getPublicCesium })
defineExpose({ getMap, getViewer, getPublicCesium,flyBoundary })
</script>
<style scoped lang="scss">