From 2c680fa0913b9ff1e8e7a4f8bc3dd49543fc97b5 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Mon, 09 Oct 2023 15:19:43 +0800
Subject: [PATCH] 地图基本功能-放大缩小

---
 src/hooks/use-cesium-tsa.ts |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/hooks/use-cesium-tsa.ts b/src/hooks/use-cesium-tsa.ts
index 4ed342b..d6d00b7 100644
--- a/src/hooks/use-cesium-tsa.ts
+++ b/src/hooks/use-cesium-tsa.ts
@@ -34,7 +34,6 @@
   let handler: Cesium.ScreenSpaceEventHandler
   const dimension = ref(3)
   const _init = () => {
-    if (viewer) return
     // Cesium Token
     const cesiumToken = import.meta.env.VITE_CESIUM_TOKEN
     Cesium.Ion.defaultAccessToken = cesiumToken
@@ -160,6 +159,20 @@
         dimension.value = 3
     }
   }
+
+  // 长按实现地图放大
+  const zoonIn = (range:number) => {
+    // 获取当前视角的高度
+    const cameraHeight = viewer?.camera.positionCartographic.height
+    const amout = Cesium.Math.sign(range) * cameraHeight / Math.log(cameraHeight)
+    viewer?.camera.zoomIn(amout)
+  }
+  // 长按实现地图缩小
+  const zoonOut = (range:number) => {
+    const cameraHeight = viewer?.camera.positionCartographic.height
+    const amout = Cesium.Math.sign(range) * cameraHeight / Math.log(cameraHeight)
+    viewer?.camera.zoomOut(amout)
+  }
   onMounted(() => {
     if (viewer) return
     _init()
@@ -169,15 +182,17 @@
   })
 
   // 销毁地图模型
-  onUnmounted(() => {
-    viewer = null
-  })
+  // onUnmounted(() => {
+  //   // viewer = null
+  // })
   return {
     addPoint,
     removeAllPoint,
     flyTo,
     removeById,
     switchModel,
-    dimension
+    dimension,
+    zoonIn,
+    zoonOut
   }
 }

--
Gitblit v1.9.3