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 |   55 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/src/hooks/useRouteLine/useRouteLine.js b/src/hooks/useRouteLine/useRouteLine.js
index 296846d..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
 
@@ -44,9 +47,11 @@
 	}
 
 	async function renderPreviewLine (kmzUrl, wayline_type, cb = () => { }, infos = {}) {
+
+
 		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 = {
@@ -56,6 +61,7 @@
 			execute_height_mode,
 			auto_flight_speed,
 			wayline_type,
+			take_off_security_height,
 			infos: infos
 		}
 
@@ -141,14 +147,15 @@
 
 		pointList.shift()
 
-		let dronePosition = {}
-		if (JSON.stringify(curRouteLineData.value.infos) != '{}') dronePosition = {
-			longitude: curRouteLineData.value.infos[0].longitude,
-			latitude: curRouteLineData.value.infos[0].latitude,
-			height: curRouteLineData.value.infos[0].height || 0,
+		if (JSON.stringify(curRouteLineData.value.infos) != '{}') {
+			pointList.unshift({
+				longitude: curRouteLineData.value.infos[0].longitude,
+				latitude: curRouteLineData.value.infos[0].latitude,
+				height: curRouteLineData.value.infos[0].height || 0,
+			})
 		}
 
-		const routePositions = [dronePosition, ...pointList].map(i => Cesium.Cartesian3.fromDegrees(Number(i.longitude), Number(i.latitude), Number(i.height)))
+		const routePositions = pointList.map(i => Cesium.Cartesian3.fromDegrees(Number(i.longitude), Number(i.latitude), Number(i.height)))
 
 		previewDataSource.entities.add({
 			polyline: {
@@ -159,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({
@@ -188,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 () {
@@ -209,6 +219,7 @@
 			execute_height_mode: '',
 			auto_flight_speed: '',
 			wayline_type: '',
+			take_off_security_height: ''
 		}
 	}
 
@@ -229,4 +240,4 @@
 		removePreviewLine,
 		resetCurRouteLineData
 	}
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3