diff --git a/src/assets/js/Airline.js b/src/assets/js/Airline.js deleted file mode 100644 index bc437b6..0000000 --- a/src/assets/js/Airline.js +++ /dev/null @@ -1,5 +0,0 @@ -export default class Airline { - constructor(points) { - - } -} \ No newline at end of file diff --git a/src/assets/js/cesium-map/measureDistance.js b/src/assets/js/cesium-map/measureDistance.js index 98c0c67..0f99364 100644 --- a/src/assets/js/cesium-map/measureDistance.js +++ b/src/assets/js/cesium-map/measureDistance.js @@ -1,7 +1,9 @@ import * as Cesium from 'cesium' import {Cartesian3} from 'cesium' import {useStaticStore} from "@/store/staticOptions.js"; - +import {useLayerStore} from "@/store/layerManagerStore.ts"; +const store = useStaticStore() +let time = new Date() export default class MeasureDistance { constructor(viewer) { this.viewer = viewer @@ -129,6 +131,7 @@ export default class MeasureDistance { // console.log(dataSource); this.viewer.dataSources.add(dataSource); this.viewer.flyTo(dataSource); + useLayerStore().addLayer(kml_file.name,kmlDataPromise,undefined,true) }); } @@ -148,6 +151,8 @@ export default class MeasureDistance { dataGeo.then((dataSources) => { console.log(dataSources); viewer.dataSources.add(dataSources); + useLayerStore().addLayer(js_file.name,dataGeo,undefined,true) + // 获取datasources中的实体 let entities = dataSources.entities.values; //获取每一个实体 @@ -167,6 +172,34 @@ export default class MeasureDistance { }); } + AddWMSLayer(url){ + let wmsProvider = new Cesium.WebMapServiceImageryProvider({ + url: url, //baseurl + workspace + '/wms', + enablePickFeatures: true, + defaultAlpha: 0, + parameters: { + service: 'WMS', + version: '1.1.1', + request: 'GetMap', + format: 'image/png8', + styles: '', + transparent: true + } + }); + let imageLayer = new Cesium.ImageryLayer(wmsProvider,{ + alpha: 0.6 + }); + this.viewer.imageryLayers.add(imageLayer); + useLayerStore().addLayer(url,undefined,imageLayer,true) + } + + clearLayers(){ + useLayerStore().Layers.forEach(layer=>{ + this.viewer.imageryLayers.remove(layer?.imageLayer,true) + this.viewer.dataSources.remove(layer?.dataSource,true) + }) + } + /** * Cesium实体导出Geojson,只导出实体中的 polyline polygon rectangle * @param entity @@ -263,6 +296,7 @@ export default class MeasureDistance { return geoJson } + /** * 显示飞行航线 * @param line Airline diff --git a/src/components/LayerItem.vue b/src/components/LayerItem.vue new file mode 100644 index 0000000..f8309ef --- /dev/null +++ b/src/components/LayerItem.vue @@ -0,0 +1,96 @@ + + + + + \ No newline at end of file diff --git a/src/components/map/LayerManager.vue b/src/components/map/LayerManager.vue index cbdb0d6..71d7ec2 100644 --- a/src/components/map/LayerManager.vue +++ b/src/components/map/LayerManager.vue @@ -1,16 +1,118 @@ diff --git a/src/components/toolbar.vue b/src/components/toolbar.vue index f442454..c26b0ff 100644 --- a/src/components/toolbar.vue +++ b/src/components/toolbar.vue @@ -14,6 +14,7 @@ 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"; +import LayerManager from "@/components/map/LayerManager.vue"; const message = useMessage(); let SceneValue; @@ -22,6 +23,7 @@ let hasPlane = ref(false); let store = useStaticStore(); const spatialAnalyse= ref(null) +const layerManager= ref(null) SceneValue = ref('untrace'); function handleSceneSelect(key){ @@ -193,18 +195,25 @@ function getUavAirline() { } } +function manageLayer(){ + layerManager.value?.open_closeSidebar() +}