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