diff --git a/README.md b/README.md index 5492e53..3ca501b 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,11 @@ commit提交时,需使用`git commit -m 'fix: xxx'` ## 地图服务 -地图服务采用天地图数据源(https://www.tianditu.gov.cn/)。 +地图服务采用天地图数据源( https://www.tianditu.gov.cn/ )。 +时间分辨率:官方未说明 +空间分辨率:官方未说明,约为30米 ## 打包部署 -- 执行build后,使用nginx部署项目时,需将项目中的`public`目录复制到`dist`中。public包含了Cesium所需的静态资源,否则不能加载地球 +- 执行build后,需将此项目中的`public`文件夹复制到`dist`目录下,再进行nginx部署。public包含了Cesium所需的静态资源,否则不能加载地球 +- 2025.4.17 更新: `public`文件夹如果不复制到`dist`目录下,服务也可以运行,但加载航线时出现异常 diff --git a/src/assets/js/RouteManageViewer.js b/src/assets/js/RouteManageViewer.js index 76661d7..9906c12 100644 --- a/src/assets/js/RouteManageViewer.js +++ b/src/assets/js/RouteManageViewer.js @@ -56,9 +56,8 @@ export default class RouteManageViewer { outlineColor: Cesium.Color.RED, outlineWidth: 2, disableDepthTestDistance:99000000, - // heightReference:Cesium.HeightReference.CLAMP_TO_GROUND, }, - label:{ + label: (index===degreesArr.length-1 && line.isClose)? undefined : { text: "航点 " + (index+1), font: "2.5rem sans-serif", fillColor: Cesium.Color.WHITE, @@ -74,6 +73,7 @@ export default class RouteManageViewer { }); this.viewer.entities.add(vertexEntity) }) + return airlineEntity } diff --git a/src/components/RouteOptions.vue b/src/components/RouteOptions.vue index 33ba264..847fc58 100644 --- a/src/components/RouteOptions.vue +++ b/src/components/RouteOptions.vue @@ -9,9 +9,9 @@ import {defineEmits, ref} from "vue"; let emit = defineEmits(['routeDraw','cancelDraw']) let routeParams = ref({ name: '', - code: 0, + code: 1, isClose: false, - height: 0, + height: 100, routePts: [] }) let routeCode = [ diff --git a/src/components/page/RouteManagePage.vue b/src/components/page/RouteManagePage.vue index ee73ac3..9cf7e69 100644 --- a/src/components/page/RouteManagePage.vue +++ b/src/components/page/RouteManagePage.vue @@ -17,6 +17,8 @@ import {query_surface_forecast, query_upper_forecast, requireWeatherLevel} from import {setChartOptions} from "@/assets/js/weatherCharts.ts"; import type { NotificationType } from 'naive-ui' import { useNotification } from 'naive-ui' +import {useStaticStore} from "@/store/staticOptions"; +import {useRouter} from "vue-router"; let myChart: EChartsType = undefined let weatherChart: EChartsType = undefined @@ -25,7 +27,7 @@ let selectedRouteCode = ref(null) let selectedLevel = ref(null) let showPtList = ref(true) let selectedRoute = ref(newAirline()) -let routesInstore = ref<{ value: string|number; label: string}[]>(null) +let routesListRef = ref<{ value: string|number; label: string}[]>(null) let routeViewer = null let routePtNumber = ref(1) let uiMsg = useMessage() @@ -54,6 +56,9 @@ let routeCode = [ } ] let levelOptions = ref() +let sStore = useStaticStore(); +const router = useRouter() + const notification = useNotification() const notify = (type: NotificationType, title: string, detail: string) =>{ notification[type]({ @@ -78,7 +83,7 @@ onMounted(()=>{ routeStore.addRoute(route2) routeStore.addRoute(route3) - routesInstore.value = routeStore.flyRoute.map((route)=> { + routesListRef.value = routeStore.flyRoute.map((route)=> { return { value: route.unicode, label: route.name @@ -139,7 +144,7 @@ function checkRoute(key:number|string){ hArr.push(selectedRoute.value.points[index].alt) }) console.log(orderArr,hArr) - // 弹出图表窗口 + // 弹出地形图表 drawEcharts_RouteDetection(myChart, res.distanceArray, res.elevationArray, orderArr, hArr) }).catch((err)=>{ @@ -241,11 +246,15 @@ function queryWeather(lon:number,lat:number,level?: number) { let i = item.indexOf('T') return item.slice(i+1,i+3) + '时' }) - if(!Reflect.has(weatherData,'precip')){ - weatherData.precip = Array.from({length:timeArr.length},(v,k)=>0) + if(!Reflect.has(weatherData,'precip')){ //高空数据无precip(降水)属性,需添加数组并补0 + weatherData.precip = Array.from({length:timeArr.length},()=>0) } setChartOptions(weatherChart, timeArr.slice(0,8),weatherData.temp.slice(0,8),weatherData.windSpeed.slice(0,8), weatherData.wind360.slice(0,8), weatherData.precip.slice(0,8),weatherData.humidity.slice(0,8)) + }).catch(e=>{ + console.log() + uiMsg.error('气象信息查询失败:' + e.message,{duration:3000, keepAliveOnHover: true}) + }) } @@ -257,6 +266,31 @@ function levelChanged(key: string | number) { queryWeather(lon,lat, Number(key)) } } + +/** + * 将航线信息发送给QT端(每次发送一条航线) + * @param routeUnicode 航线唯一码 + */ +function sendRouteToQT(routeUnicode: string|number){ + let selectedRoute = routeStore.flyRoute.filter(element => element.unicode === String(routeUnicode))[0] + if(selectedRoute){ + if(sStore.webskt.ws?.readyState == WebSocket.OPEN){ + sStore.webskt.ws.send(JSON.stringify(selectedRoute)) + }else { + uiMsg.info('请先开启WebSocket') + } + }else + uiMsg.warning('未找到相应的航线') +} + +function delRoute(routeUnicode: string|number){ + +} + +function backToHomePage(){ + router.push({name: 'Home'}) +} +