From 5808f76456ca0d40de5074f132b73a5a488e3e13 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 09 Dec 2025 09:12:03 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v9.0/9.0.1' into test

---
 src/hooks/useRouteLine/useRouteLine.js |   40 ++++++++++++++++++++++++----------------
 1 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/hooks/useRouteLine/useRouteLine.js b/src/hooks/useRouteLine/useRouteLine.js
index 01d0b57..32c3d3a 100644
--- a/src/hooks/useRouteLine/useRouteLine.js
+++ b/src/hooks/useRouteLine/useRouteLine.js
@@ -13,6 +13,8 @@
 import { ArrowLineMaterialProperty } from '@/utils/cesium/Material'
 import { flyVisual } from '@/utils/cesium/mapUtil'
 
+import { useStore } from 'vuex'
+
 let arrowLineMaterialProperty = new ArrowLineMaterialProperty({
 	color: new Cesium.Color(128 / 255, 215 / 255, 255 / 255, 1),
 	directionColor: new Cesium.Color(1, 1, 1, 1),
@@ -22,6 +24,7 @@
 })
 
 export function useRouteLine () {
+	const store = useStore()
 	let viewer = null
 	let previewDataSource = null
 
@@ -48,7 +51,7 @@
 
 		resetCurRouteLineData()
 
-		const { pointPlacemark, polygonList, templateType, startPoint, execute_height_mode, auto_flight_speed } =
+		const { pointPlacemark, polygonList, templateType, startPoint, execute_height_mode, auto_flight_speed, take_off_security_height } =
 			await analysisPointLineKmz(kmzUrl)
 
 		curRouteLineData.value = {
@@ -58,6 +61,7 @@
 			execute_height_mode,
 			auto_flight_speed,
 			wayline_type,
+			take_off_security_height,
 			infos: infos
 		}
 
@@ -162,15 +166,15 @@
 			},
 		})
 
-			// 落点线
-			; (pointList || [])?.forEach((item, index) => {
-				const topPosition = Cesium.Cartesian3.fromDegrees(Number(item.longitude), Number(item.latitude), Number(item.height))
-				let setting = {
-					position: topPosition,
-					polyline: getPolyLine(viewer, { value: pointList }, index),
-				}
-				previewDataSource.entities.add(setting)
-			})
+		// 落点线
+		; (pointList || [])?.forEach((item, index) => {
+			const topPosition = Cesium.Cartesian3.fromDegrees(Number(item.longitude), Number(item.latitude), Number(item.height))
+			let setting = {
+				position: topPosition,
+				polyline: getPolyLine(viewer, { value: pointList }, index),
+			}
+			previewDataSource.entities.add(setting)
+		})
 
 		// 终点
 		previewDataSource.entities.add({
@@ -191,12 +195,15 @@
 				height: 50,
 			},
 		})
-
-		flyVisual(
-			pointList.map(i => [Number(i.longitude), Number(i.latitude), Number(i.height)]),
+		// 获取航线拆分所有点
+		store.commit('setPositionsArr', pointList)
+		// 获取安全起飞高度
+		store.commit('setSafeHeight', curRouteLineData.value.take_off_security_height)
+		flyVisual({
+			positionsData:pointList.map(i => [Number(i.longitude), Number(i.latitude), Number(i.height)]),
 			viewer,
-			20
-		)
+			multiple: 20
+		})
 	}
 
 	function removePreviewLine () {
@@ -212,6 +219,7 @@
 			execute_height_mode: '',
 			auto_flight_speed: '',
 			wayline_type: '',
+			take_off_security_height: ''
 		}
 	}
 
@@ -232,4 +240,4 @@
 		removePreviewLine,
 		resetCurRouteLineData
 	}
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3