From 23e922aa76e96d297930b2dd99ce384280f4bb7f Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 03 Apr 2025 10:20:10 +0800
Subject: [PATCH] feat: 优化滚轮更新界面太慢
---
src/views/Home/useMapAggregation/useMapAggregation.js | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/src/views/Home/useMapAggregation/useMapAggregation.js b/src/views/Home/useMapAggregation/useMapAggregation.js
index 95b05e6..d41f71f 100644
--- a/src/views/Home/useMapAggregation/useMapAggregation.js
+++ b/src/views/Home/useMapAggregation/useMapAggregation.js
@@ -46,13 +46,10 @@
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;
@@ -64,6 +61,7 @@
active = item.name;
removeEntities();
removeLabel();
+ if (!item.gJson && !item.splashedList?.length) return;
item.gJson ? aggregation(item) : splashed(item);
renderOutline(item);
break;
@@ -216,7 +214,10 @@
watch(
selectedAreaCode,
async (newValue, oldValue) => {
- initMapData(newValue);
+ viewer.scene.postRender.removeEventListener(determineScaling)
+ initMapData(newValue).then(()=>{
+ viewer.scene.postRender.addEventListener(determineScaling)
+ })
},
{ deep: true }
);
@@ -284,10 +285,10 @@
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,
}
});
// 遍历特征并添加实体
@@ -434,7 +435,8 @@
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;
@@ -444,11 +446,14 @@
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(() => {
@@ -456,7 +461,6 @@
// viewer = window.$viewer;
// handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
// handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK);
- // listenerHeight();
// });
// });
--
Gitblit v1.9.3