From fa0045dec30afff824b1efdafeb437a7b4f21c7e Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Thu, 16 Jan 2025 10:08:16 +0800
Subject: [PATCH] 打印ws信息
---
src/utils/cesium/use-map-draw.ts | 89 ++++++++++++++++++++++++++++++++++----------
1 files changed, 68 insertions(+), 21 deletions(-)
diff --git a/src/utils/cesium/use-map-draw.ts b/src/utils/cesium/use-map-draw.ts
index e5a8005..4c2b631 100644
--- a/src/utils/cesium/use-map-draw.ts
+++ b/src/utils/cesium/use-map-draw.ts
@@ -5,6 +5,7 @@
import { ref } from 'vue'
import { cesiumOperation } from '/@/hooks/use-cesium-tsa'
import { XMLToJSON } from './kmz'
+import _, { includes } from 'lodash'
const { addPolyline, getEntityById, removeAllDataSource, removeAllPoint } = cesiumOperation()
const getResource = (name: string) => {
@@ -50,12 +51,12 @@
icon: getResource('waylinetool/camera-off.png'),
},
{
- key: 'time',
+ key: 'multipleTiming',
name: '开始等时间隔拍照',
icon: getResource('waylinetool/shoot1.png'),
},
{
- key: 'distance',
+ key: 'multipleDistance',
name: '开始等距间隔拍照',
icon: getResource('waylinetool/shoot2.png'),
},
@@ -85,6 +86,11 @@
key: 'hover',
name: '悬停等待',
icon: getResource('waylinetool/xt.png'),
+ },
+ {
+ key: 'panoShot',
+ name: '全景拍摄',
+ icon: getResource('waylinetool/panoramicview.png'),
},
]
@@ -125,7 +131,10 @@
// 绘制路线
const drawWayline = async (entities?: Cesium.Entity[], kmlStr?: string) => {
- if (!entities && !kmlStr) {
+ // if (!entities && !kmlStr) {
+ // dataSource.show = false
+ // }
+ if (dataSource) {
dataSource.show = false
}
let kmlEntityArr = entities || [...entitiesList]
@@ -145,7 +154,9 @@
}
const kmlJson = XMLToJSON(kmlRes)
// 所有航点
- const kmlPoints = kmlJson.Document.Folder.Placemark
+ const kmlPoints = Array.isArray(kmlJson.Document.Folder.Placemark)
+ ? kmlJson.Document.Folder.Placemark
+ : [kmlJson.Document.Folder.Placemark]
// 起飞点
let btmStartPoint = null
// 获取文件中的起飞点
@@ -303,31 +314,67 @@
kmlRes = await fileRes.fileInfoObj['wpmz/template.kml']
}
const kmlJson = XMLToJSON(kmlRes).Document
- const points = kmlJson.Folder?.Placemark
- let takePhotoNum = 0
+ const points = Array.isArray(kmlJson.Folder?.Placemark) ? kmlJson.Folder.Placemark : [kmlJson.Folder.Placemark]
points?.forEach((point: { actionGroup: any }, index: number) => {
- if (Reflect.has(point, 'actionGroup')) {
- const action = point.actionGroup.action
- if (Array.isArray(action)) {
- action.forEach((item) => {
- const { actionActuatorFunc } = item
- actionActuatorFunc?.['#text'] === 'takePhoto' && takePhotoNum++
- const actionObj: eventParmas | any = actionList.find((event) => actionActuatorFunc['#text'] === event.key)
- waylinePointsEvent.value[index].eventList?.push(actionObj)
- })
- } else {
- const { actionActuatorFunc } = action
- actionActuatorFunc['#text'] === 'takePhoto' && takePhotoNum++
- const actionObj: eventParmas | any = actionList.find((item) => actionActuatorFunc['#text'] === item.key)
- waylinePointsEvent.value[index].eventList?.push(actionObj)
+ if (point !== undefined) {
+ if (Reflect.has(point, 'actionGroup')) {
+ if (Array.isArray(point.actionGroup)) {
+ const actionGroups = point.actionGroup
+ actionGroups.forEach((actionGroup) => {
+ const action = actionGroup.action
+ const actionTrigger = actionGroup.actionTrigger
+ pointActionShow(action, actionTrigger, index)
+ })
+ } else {
+ const action = point.actionGroup.action
+ const actionTrigger = point.actionGroup.actionTrigger
+ pointActionShow(action, actionTrigger, index)
+ }
}
}
})
waylineDetails[3].value = takePhotoNum
}
+
+ let takePhotoNum = 0
+ const pointActionShow = (
+ action: { forEach: (arg0: (item: any) => void) => void; actionActuatorFunc: { [x: string]: string } },
+ actionTrigger: { actionTriggerType: { [x: string]: string } },
+ index: number,
+ ) => {
+ if (Array.isArray(action)) {
+ action.forEach((item) => {
+ const { actionActuatorFunc } = item
+ actionActuatorFunc?.['#text'] === 'takePhoto' && takePhotoNum++
+ const actionObj: eventParmas | any = actionList.find((event) => {
+ if (actionTrigger?.actionTriggerType['#text'] === event.key) {
+ return actionTrigger?.actionTriggerType['#text'] === event.key
+ } else {
+ return actionActuatorFunc['#text'] === event.key
+ }
+ })
+ waylinePointsEvent.value[index].eventList?.push(actionObj)
+ })
+ } else {
+ action?.actionActuatorFunc['#text'] === 'takePhoto' && takePhotoNum++
+ const actionObj: eventParmas | any = actionList.find((item) => {
+ const actionTriggerType = actionTrigger.actionTriggerType['#text']
+ if (['multipleDistance', 'multipleTiming'].includes(actionTriggerType)) {
+ return actionTriggerType === item.key
+ } else {
+ return action?.actionActuatorFunc['#text'] === item.key
+ }
+ })
+ waylinePointsEvent.value[index].eventList?.push(actionObj)
+ }
+ }
+
const clearWaylineData = () => {
kmlEntities.value = []
waylinePointsEvent.value = []
+ _.transform(waylineDetails, (_result, value) => {
+ value.value = 0
+ })
}
return {
@@ -340,5 +387,5 @@
}
}
-export { waylinePointsEvent, waylineDetails, kmlEntities, selectPointIndex }
+export { waylinePointsEvent, waylineDetails, kmlEntities, selectPointIndex, actionList }
export default useMapDraw
--
Gitblit v1.9.3