From bb042154cd137ae5bfb648e9e9a331dd8706ae94 Mon Sep 17 00:00:00 2001 From: zhaipx Date: Tue, 4 Mar 2025 14:47:00 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E5=9C=B0=E5=BD=A2=E5=88=86=E6=9E=90?= =?UTF-8?q?=E3=80=81=E9=80=9A=E8=A7=86=E5=88=86=E6=9E=90=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=92=8C=E9=80=BB=E8=BE=91=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 5 - package.json | 1 - src/assets/js/cesium-map/measureDistance.js | 123 +++++- src/components/ProfileAnalysis.vue | 238 ------------ src/components/SpatialAnalysis.vue | 196 ++++++++++ src/components/UnitTest.vue | 22 ++ src/components/map/SceneViewer.vue | 32 +- src/components/toolbar.vue | 130 +++---- src/router/index.js | 5 + src/store/staticOptions.js | 50 ++- src/utils/map/SpatialAnalysis.ts | 410 ++++++++++++++++++-- update-index.mjs | 16 - vite.config.ts | 2 +- 13 files changed, 821 insertions(+), 409 deletions(-) delete mode 100644 src/components/ProfileAnalysis.vue create mode 100644 src/components/SpatialAnalysis.vue create mode 100644 src/components/UnitTest.vue delete mode 100644 update-index.mjs diff --git a/index.html b/index.html index 8422405..fb8f3e1 100644 --- a/index.html +++ b/index.html @@ -24,11 +24,6 @@ cesium="true" src="public/Cesium/Cesium.js" > - - - - - diff --git a/src/components/SpatialAnalysis.vue b/src/components/SpatialAnalysis.vue new file mode 100644 index 0000000..a329258 --- /dev/null +++ b/src/components/SpatialAnalysis.vue @@ -0,0 +1,196 @@ + + + + + + diff --git a/src/components/UnitTest.vue b/src/components/UnitTest.vue new file mode 100644 index 0000000..745ff41 --- /dev/null +++ b/src/components/UnitTest.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/components/map/SceneViewer.vue b/src/components/map/SceneViewer.vue index f23109e..5c0c439 100644 --- a/src/components/map/SceneViewer.vue +++ b/src/components/map/SceneViewer.vue @@ -7,12 +7,11 @@ --> + + diff --git a/src/components/toolbar.vue b/src/components/toolbar.vue index f07673d..f442454 100644 --- a/src/components/toolbar.vue +++ b/src/components/toolbar.vue @@ -13,26 +13,17 @@ import {ref} from "vue"; import {useStaticStore} from "@/store/staticOptions.js"; import {login, requestAirline} from "@/assets/js/request.js"; import {dataProcess, getAirline} from "@/assets/js/websocketProtocol.ts"; +import SpatialAnalysis from "@/components/SpatialAnalysis.vue"; const message = useMessage(); -let file, SceneValue; +let SceneValue; let showModal = ref(false); let hasPlane = ref(false); let store = useStaticStore(); -// -------------------------------------- - - +const spatialAnalyse= ref(null) SceneValue = ref('untrace'); -let sceneOptions= [ - { - label: '第三视角跟随', - value: 'fallow' - },{ - label: '不跟随', - value: 'untrace' - } -]; + function handleSceneSelect(key){ if(!hasPlane.value) return; @@ -42,50 +33,9 @@ function handleSceneSelect(key){ window.viewer.trackedEntity = window.viewer.entities.getById('websocket-flying-plane'); } } -let EditOptions = [ - { - label: '查询航线', - key: 'requestLine' - }, - { - label: '航线管理', - key: 'manage' - }] - let layerValue = ref('layer1'); let barIsOpen = ref(true); -let MeasureOptions = [ - { - label: '距离测量', - key: 'distance' - }, - { - label: '面积测量', - key: 'area' - }, - { - label: '清除', - key: 'clear' - }, -] -let DrawOptions = [ - { - label: '多边形', - key: 'polygon' - }, - { - label: '矩形', - key: 'rec' - },{ - label: '圆形', - key: 'circle' - }, - { - label: '清除', - key: 'clear' - }, -] function handleEditSelect(key) { if(key === 'requestLine') { getUavAirline() @@ -94,6 +44,19 @@ function handleEditSelect(key) { // 航线管理页面 } } +function handleAnalyseSelect(key) { + if(key === 'visibility') { + store.analysisVars.analysisType = 2 + //弹出参数窗口 + spatialAnalyse.value?.openParamsDialog() + } + if(key === 'profile') { + store.analysisVars.analysisType = 1 + //弹出参数窗口 + spatialAnalyse.value?.openParamsDialog() + } + +} function handleDrawSelect(key) { if(key === 'clear') { @@ -173,6 +136,10 @@ function measureArea() { window.measureViewer.activateAreaMeasure(); } +/** + * 连接websocket + * @returns {Promise} + */ async function connectWebSocket() { await login(store.temp.userName, store.temp.password).then(rsp => { let resData = JSON.parse(rsp.data.data) @@ -185,9 +152,9 @@ async function connectWebSocket() { }) if(sessionStorage.getItem('token') === 'err') return - store.server.ws = new WebSocket('ws://123.57.54.1:8048/htfp/websocket/uavGlobal/sysUser003', sessionStorage.getItem('token')) + store.webskt.ws = new WebSocket('ws://123.57.54.1:8048/htfp/websocket/uavGlobal/sysUser003', sessionStorage.getItem('token')) // store.server.ws = new WebSocket('ws://'+store.server.ws_config.address+':'+store.server.ws_config.port); - store.server.ws.onmessage = (event) => { + store.webskt.ws.onmessage = (event) => { //收到消息后的处理流程.... let data = dataProcess(JSON.parse(event.data)) console.log(data); @@ -203,12 +170,18 @@ async function connectWebSocket() { }; } +/** + * 关闭websocket连接 + */ function closeWS(){ - if(store.server.ws){ - store.server.ws.close(); + if(store.webskt.ws){ + store.webskt.ws.close(); } } +/** + * 请求航线接口 + */ function getUavAirline() { if(sessionStorage.getItem('uavId')){ requestAirline(sessionStorage.getItem('uavId')).then(rsp => { @@ -219,11 +192,13 @@ function getUavAirline() { message.warning('当前未连接飞机') } } + +
- - + - + @@ -328,6 +302,8 @@ function getUavAirline() {
+ +