applications/drone-command/env/.env.development
@@ -1,13 +1,3 @@ ### # @Author : yuan # @Date : 2026-01-31 14:34:31 # @LastEditors : yuan # @LastEditTime : 2026-02-03 17:22:33 # @FilePath : \applications\drone-command\env\.env.development # @Description : # Copyright 2026 OBKoro1, All Rights Reserved. # 2026-01-31 14:34:31 ### NODE_ENV='development' #开发环境配置 @@ -18,19 +8,8 @@ # VITE_APP_URL=https://wrj.shuixiongit.com/api VITE_APP_URL=http://192.168.1.168 # 域名 VITE_APP_AREA_NAME=https://wrj.shuixiongit.com # ws地址 VITE_APP_WS_API_URL=wss://wrj.shuixiongit.com/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL=https://wrj.shuixiongit.com/minio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region # 算法仓库图片地址 VITE_APP_PICTURE_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket # 设备ip地址 VITE_APP_DEVICE_IP='139.196.74.78:1883' applications/drone-command/env/.env.production
@@ -6,20 +6,8 @@ # 服务地址 VITE_APP_URL=https://aisky.org.cn/api # 域名 VITE_APP_AREA_NAME=https://aisky.org.cn # ws地址 VITE_APP_WS_API_URL=wss://aisky.org.cn/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket # 算法仓库图片地址 VITE_APP_PICTURE_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region # 设备ip地址 VITE_APP_DEVICE_IP='101.132.85.201:1883' applications/drone-command/env/.env.test
@@ -4,10 +4,10 @@ # @LastEditors : yuan # @LastEditTime : 2026-02-04 09:12:33 # @FilePath : \applications\drone-command\env\.env.test # @Description : # Copyright 2026 OBKoro1, All Rights Reserved. # @Description : # Copyright 2026 OBKoro1, All Rights Reserved. # 2026-01-07 14:58:30 ### ### NODE_ENV = 'test' #开发环境配置 @@ -16,20 +16,8 @@ # 服务地址 VITE_APP_URL = http://192.168.1.33 # 域名 VITE_APP_AREA_NAME = https://wrj.shuixiongit.com # ws地址 VITE_APP_WS_API_URL = wss://wrj.shuixiongit.com/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/minio/cloud-bucket # 算法仓库图片地址 VITE_APP_PICTURE_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region # 设备ip地址 VITE_APP_DEVICE_IP = '139.196.74.78:1883' applications/drone-command/src/utils/cesium/mapUtil.js
@@ -2,7 +2,6 @@ import * as turf from '@turf/turf' import store from '@/store' const { VITE_APP_BASE, VITE_APP_ENV, VITE_APP_REGION_URL } = import.meta.env export const getLngLatDistance = (lat1, lng1, lat2, lng2) => { const radLat1 = (lat1 * Math.PI) / 180.0 const radLat2 = (lat2 * Math.PI) / 180.0 @@ -507,17 +506,6 @@ return [provinceCode, cityCode] } return [provinceCode, cityCode, codeStr] } // 根据区域code获取轮廓 export const getContourByCode = async areaCode => { const defaultDir = `${VITE_APP_REGION_URL}/100000/` const hierarchy = areaCodeToArr(areaCode.slice(0, 6)) const jsonPathPre = hierarchy.slice(0, hierarchy.length - 1).join('/') const res = await fetch(`${defaultDir}${jsonPathPre}/index.json`) const parentGJson = await res.json() let features = parentGJson.features.find(item => item.properties.adcode === Number(hierarchy[hierarchy.length - 1])) return { type: 'FeatureCollection', features: [features] } } // 辅助函数:创建旋转文字的画布 applications/drone-command/src/views/algorithmMange/algorithmMange.vue
File was deleted applications/drone-command/src/views/algorithmRepository/algorithmRepository.vue
File was deleted applications/drone-command/src/views/api.txt
File was deleted applications/drone-command/src/views/dataCenter/components/dataCenterMap.vue
File was deleted applications/drone-command/src/views/dataCenter/components/searchData.vue
File was deleted applications/drone-command/src/views/dataCenter/dataCenter.vue
File was deleted applications/drone-command/src/views/license/license.vue
File was deleted applications/drone-command/src/views/license/upload.vue
File was deleted applications/task-work-order/env/.env.development
@@ -12,9 +12,6 @@ # ws地址 VITE_APP_WS_API_URL=wss://wrj.shuixiongit.com/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL=https://wrj.shuixiongit.com/minio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region applications/task-work-order/env/.env.production
@@ -10,8 +10,5 @@ # ws地址 VITE_APP_WS_API_URL=wss://aisky.org.cn/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region applications/task-work-order/env/.env.test
@@ -9,9 +9,6 @@ # ws地址 VITE_APP_WS_API_URL=wss://wrj.shuixiongit.com/drone-wss/api/v1/ws # 航线文件地址 VITE_APP_AIRLINE_URL=https://wrj.shuixiongit.com/minio/cloud-bucket # 行政区划存放地址 VITE_APP_REGION_URL=https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_region applications/task-work-order/src/utils/cesium/createRouteLine.js
@@ -307,177 +307,6 @@ } } // 拆分航线 async splitWayLine (data, dronePosition = null, isShowDock = false, isShowPointBillboard = true) { const { pointPlacemark, polygonList, pointList, templateType, startPoint, execute_height_mode, auto_flight_speed, take_off_security_height, buffer_distance_meters, missionConfig, waylinesXMLObjR, } = await analysisPointLineKmz(`${data.domain_url}${data.object_key}`) const { positionArray, filePositions } = this.disposeData( waylinesXMLObjR, missionConfig, null, data, startPoint, 0 ) let bigPointList = handlePointListForKmz({ placemark: pointPlacemark, startPoint: startPoint, execute_height_mode: execute_height_mode, auto_flight_speed: auto_flight_speed, }) // 路径线 let entityConfig bigPointList.shift() let flyPositions = bigPointList.map(i => [Number(i.longitude), Number(i.latitude), Number(i.height)]) // 渲染多个点 let firstTopPosition = null let resultPosotions = [] await Promise.all(data.wayline_file_list.map(async (item, index) => { // 小航线渲染线 const kmzUrl = import.meta.env.VITE_APP_AIRLINE_URL + item.object_key const { pointList } = await analysisPointLineKmz(kmzUrl) resultPosotions.push(pointList) })).then(res => { // 目的是区分大航线点属于哪条小航线 bigPointList.forEach(bigObj => { let foundIndex = -1 // 遍历 resultPositions 查找匹配项 resultPosotions.some((subArray, subIndex) => { const found = subArray.some(obj => obj.latitude === bigObj.latitude && obj.longitude === bigObj.longitude ) if (found) { foundIndex = subIndex return true // 找到就停止搜索 } return false }) // 如果找到了,给 bigPointList 的对象添加标记 if (foundIndex !== -1) { bigObj.log = foundIndex // 或 bigObj.index = foundIndex } }) console.log(bigPointList, '查看结果值') // 现在 bigPointList 会有 log 属性 bigPointList.map(async (i, index) => { firstTopPosition = i const position = Cesium.Cartesian3.fromDegrees(Number(i.longitude), Number(i.latitude), Number(findHeightByCoordinates(resultPosotions, i.longitude, i.latitude))) const combinedImage = await createCombinedSVG(index, i.log % 2 ? newStartPoint : newStartPointMore) entityConfig = { name: 'work-drone-route-point-split', position: position, billboard: { disableDepthTestDistance: Number.POSITIVE_INFINITY, image: combinedImage, width: 50, height: 50, verticalOrigin: Cesium.VerticalOrigin.CENTER, horizontalOrigin: Cesium.HorizontalOrigin.CENTER, } } // 只在第一个点添加 label if (index === 0) { entityConfig.label = { text: data.task_name || '', font: 'bold 16px sans-serif', fillColor: data.status === 2 ? runningTextColor : pendingTextColor, pixelOffset: data.status === 2 ? runningTextOffset : pendingTextOffset, style: Cesium.LabelStyle.FILL_AND_OUTLINE, outlineWidth: 2, outlineColor: Cesium.Color.BLACK, disableDepthTestDistance: Number.POSITIVE_INFINITY, } } this.viewer.entities.add(entityConfig) }) }) // 渲染航线 data.wayline_file_list.map(async (item, index) => { // 小航线渲染线 const kmzUrl = import.meta.env.VITE_APP_AIRLINE_URL + item.object_key const { pointList } = await analysisPointLineKmz(kmzUrl) // if (curRouteLineData.value.droneData && splitLines.length === 1) { // // 把pointList的第一个点替换为无人机位置 // pointList[0] = curRouteLineData.value.droneData[0] // } if (take_off_security_height + pointList[0].height > firstTopPosition.height) { // 安全高度+机巢高度 > 第一个点高度 const positionTest = { longitude: pointList[0].longitude, latitude: pointList[0].latitude, height: take_off_security_height + pointList[0].height, } const positionTest1 = { longitude: pointList[1].longitude, latitude: pointList[1].latitude, height: take_off_security_height + pointList[0].height, } pointList.splice(1, 0, positionTest) // 往数组中插入元素 pointList.splice(2, 0, positionTest1) // console.log(pointList, 'pointList') } else if (take_off_security_height + pointList[0].height < firstTopPosition.height) { const positionTest = { longitude: pointList[0].longitude, latitude: pointList[0].latitude, height: firstTopPosition.height, } pointList.splice(1, 0, positionTest) } const routePositions = pointList.map(i => Cesium.Cartesian3.fromDegrees(Number(i.longitude), Number(i.latitude), Number(i.height)) ) this.viewer.entities.add({ name: 'work-drone-route-line-split', polyline: { width: 4, positions: routePositions, material: data.status === 1 ? arrowLineMaterialPropertyGray : getLineColor(index + 1), clampToGround: false, }, }) }) // 落点线 ; (bigPointList || [])?.forEach((item, index) => { const topPosition = Cesium.Cartesian3.fromDegrees( Number(item.longitude), Number(item.latitude), Number(item.height) ) let setting = { name: 'work-drone-route--planar-polyline-split', position: topPosition, polyline: getPolyLine(this.viewer, { value: bigPointList }, index), } this.viewer.entities.add(setting) }) return { entity: entityConfig, routeLinePositions: positionArray, filePositions: dronePosition != null ? [{ lng: dronePosition.longitude, lat: dronePosition.latitude, alt: dronePosition.height }, ...filePositions] : filePositions, } } /** * 绘制面状航线 * @param {*} lineObj 航线文件中的