From 2800fa4f32f3900509cb4d6eefaf2bfaf54efdd7 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 21 Apr 2025 18:29:09 +0800
Subject: [PATCH] fix: 天气显示
---
src/views/Home/Home.vue | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue
index 0c697e8..e050f03 100644
--- a/src/views/Home/Home.vue
+++ b/src/views/Home/Home.vue
@@ -32,6 +32,11 @@
import cesiumOperation from '@/utils/cesium-tsa'
import EventOverviewDetail from '@/views/Home/EventOverviewDetail/EventOverviewDetail.vue'
import AINowFly from '@/views/Home/AINowFly.vue'
+import { getMapCenterPoint } from '@/utils/cesium/mapUtil'
+import { getAreaCodeApi } from '@/api/home'
+import { getDroneSuggest } from '@/api/home/common'
+import { MAP_LEVEL } from '@/const/drc'
+import _ from 'lodash'
const store = useStore()
const { _init, viewerDestory } = cesiumOperation()
@@ -52,7 +57,35 @@
viewerDestory()
})
+// 获取飞行建议
+function getFlySuggestion(){
+ const viewer = window.$viewer
+ const {longitude,latitude} = getMapCenterPoint(viewer)
+ let height = viewer.camera.positionCartographic.height;
+ if (height > MAP_LEVEL[0].heightRange[1]) {
+ store.commit('setFlySuggest', {})
+ return
+ }
+ const params = { location: longitude + ',' + latitude}
+ getAreaCodeApi(params).then(res => {
+ const { adcode:areaCode } = res.data.data.regeocode.addressComponent
+ if (!areaCode) return
+ return getDroneSuggest({areaCode})
+ }).then(res => {
+ const setFlySuggest = _.pick(res.data.data,['windPower','flightAdvice']) || {}
+ store.commit('setFlySuggest', setFlySuggest)
+ })
+}
+
+onBeforeUnmount(() =>{
+ window.$viewer.camera.moveEnd.removeEventListener(getFlySuggestion);
+})
+
onMounted(() => {
_init('cesium')
+ nextTick(() => {
+ getFlySuggestion()
+ window.$viewer.camera.moveEnd.addEventListener(getFlySuggestion);
+ })
})
</script>
--
Gitblit v1.9.3