| | |
| | | const store = useStore(); |
| | | const userAreaCode = computed(() => store.state.user.userInfo.detail.areaCode); |
| | | const selectedAreaCode = computed(() => store.state.user.selectedAreaCode); |
| | | const listenerHeight = () => { |
| | | determineScaling(); |
| | | viewer.camera.moveEnd.addEventListener(determineScaling); |
| | | }; |
| | | |
| | | |
| | | // 确定缩放比例 |
| | | const determineScaling = index => { |
| | | const determineScaling = () => { |
| | | console.log('确定缩放比例'); |
| | | if (!viewer) return; |
| | | let height = viewer.camera.positionCartographic.height; |
| | |
| | | active = item.name; |
| | | removeEntities(); |
| | | removeLabel(); |
| | | if (!item.gJson && !item.splashedList?.length) return; |
| | | item.gJson ? aggregation(item) : splashed(item); |
| | | renderOutline(item); |
| | | break; |
| | |
| | | watch( |
| | | selectedAreaCode, |
| | | async (newValue, oldValue) => { |
| | | initMapData(newValue); |
| | | viewer.scene.postRender.removeEventListener(determineScaling) |
| | | initMapData(newValue).then(()=>{ |
| | | viewer.scene.postRender.addEventListener(determineScaling) |
| | | }) |
| | | }, |
| | | { deep: true } |
| | | ); |
| | |
| | | const featuresList = item.gJson.features.map(item1 => { |
| | | // const {lng,lat} = getCenterPoint(item1.geometry.coordinates[0][0]) |
| | | return { |
| | | name: item.properties.name, |
| | | position: item.properties.center, |
| | | data: item.data, |
| | | id: item.region_code, |
| | | name: item1.properties.name, |
| | | position: item1.properties.center, |
| | | data: item1.data, |
| | | id: item1.region_code, |
| | | } |
| | | }); |
| | | // 遍历特征并添加实体 |
| | |
| | | const removeAll = () => { |
| | | removeEntities(); |
| | | removeLabel(); |
| | | viewer.camera.moveEnd.removeEventListener(determineScaling); |
| | | // viewer.camera.moveEnd.removeEventListener(determineScaling); |
| | | viewer.scene.postRender.removeEventListener(determineScaling) |
| | | handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | handler?.destroy(); |
| | | viewer = null; |
| | |
| | | currentEntity = null; |
| | | }; |
| | | const init = () => { |
| | | initMapData(selectedAreaCode.value || userAreaCode.value); |
| | | viewer = window.$viewer; |
| | | viewer.scene.postRender.removeEventListener(determineScaling) |
| | | initMapData(selectedAreaCode.value || userAreaCode.value).then(()=>{ |
| | | viewer.scene.postRender.addEventListener(determineScaling) |
| | | }) |
| | | handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); |
| | | handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | listenerHeight(); |
| | | |
| | | }; |
| | | onBeforeUnmount(() => {}); |
| | | // onMounted(() => { |
| | |
| | | // viewer = window.$viewer; |
| | | // handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); |
| | | // handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | // listenerHeight(); |
| | | // }); |
| | | // }); |
| | | |