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 |   56 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 37 insertions(+), 19 deletions(-)

diff --git a/src/hooks/useRouteLine/useRouteLine.js b/src/hooks/useRouteLine/useRouteLine.js
index 3397ee7..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
 
@@ -33,6 +36,7 @@
 		execute_height_mode: '',
 		auto_flight_speed: '',
 		wayline_type: '',
+		infos: {}
 	})
 
 	const routeLineListClick = async data => {
@@ -42,10 +46,12 @@
 		await renderRouteLine(data.data)
 	}
 
-	async function renderPreviewLine (kmzUrl, wayline_type, cb = () => { }) {
+	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 = {
@@ -55,6 +61,8 @@
 			execute_height_mode,
 			auto_flight_speed,
 			wayline_type,
+			take_off_security_height,
+			infos: infos
 		}
 
 		cb(curRouteLineData.value.polygonList.map(item => [Number(item[0]), Number(item[1])]))
@@ -130,8 +138,6 @@
 			})
 		}
 
-
-
 		let pointList = handlePointListForKmz({
 			placemark: data,
 			startPoint: curRouteLineData.value.startPoint,
@@ -140,6 +146,14 @@
 		})
 
 		pointList.shift()
+
+		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 = pointList.map(i => Cesium.Cartesian3.fromDegrees(Number(i.longitude), Number(i.latitude), Number(i.height)))
 
@@ -152,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({
@@ -181,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 () {
@@ -202,6 +219,7 @@
 			execute_height_mode: '',
 			auto_flight_speed: '',
 			wayline_type: '',
+			take_off_security_height: ''
 		}
 	}
 
@@ -222,4 +240,4 @@
 		removePreviewLine,
 		resetCurRouteLineData
 	}
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3