From 36fbd1e5a40e319e6ac5f43d11c99ba4b66e93a3 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期三, 29 十一月 2023 16:50:16 +0800 Subject: [PATCH] 坡度分析下载修改 --- src/assets/js/Map/menuTool.js | 155 +++++++++++++++++++++++++++++++-------------------- 1 files changed, 93 insertions(+), 62 deletions(-) diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index ed1f6f0..e8c1774 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -20,6 +20,7 @@ }, exportSquare: null, imageryProvider: null, + legendBox: null, topTools(res) { this.toolFlag = res.id; @@ -111,9 +112,9 @@ Viewer.animation.container.style.visibility = "visible"; Viewer.timeline.container.style.visibility = "visible"; earthCtrl.shadows = true; - // earthCtrl.terrainShadows = SmartEarth.Cesium.ShadowMode.ENABLED + earthCtrl.terrainShadows = SmartEarth.Cesium.ShadowMode.ENABLED - // earthCtrl.shadowMap.size = 1024 + earthCtrl.shadowMap.size = 1024 }, setLocalPosition(res) { if (this.localPoint) { @@ -142,6 +143,71 @@ }, //鍧″害鍒嗘瀽 setSlopeMap() { + + + if (window.esriLayer) { + this.setCloseEsriLayer(); + return + } + sgworld.Creator.createSimpleGraphic('rectangle', {}, (entity) => { + if (entity) { + var west = Cesium.Math.toDegrees( + entity.rectangle._coordinates.getValue().west + ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴� + var east = Cesium.Math.toDegrees( + entity.rectangle._coordinates.getValue().east + ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴� + var north = Cesium.Math.toDegrees( + entity.rectangle._coordinates.getValue().north + ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴� + var south = Cesium.Math.toDegrees( + entity.rectangle._coordinates.getValue().south + ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴� + sgworld.Creator.SimpleGraphic.clear(); + this.legendBox = [ + west, south, east, north + ] + this.addTMSLayer(this.legendBox) + } + }); + + }, + + + addTMSLayer(obj) { + + var esri = new Cesium.WebMapServiceImageryProvider({ + url: config.esri, + name: 'esriLayer', + rectangle: Cesium.Rectangle.fromDegrees(obj[0], obj[1], obj[2], obj[3]), + crs: 'EPSG:4326', + //transparent: true + parameters: { + format: "image/png", + layers: [0] + } + }); + window.esriLayer = Viewer.imageryLayers.addImageryProvider(esri); + store.state.showlegendLayer = true; + }, + + + + + + + + + + + + + + + + + + setSlopeMap1() { const globe = Viewer.scene.globe; if (window.material) { window.material = null; @@ -167,6 +233,10 @@ Viewer.scene.globe.material = window.material; }, setImageLayerChange() { + if (window.esriLayer) { + Viewer.imageryLayers.raiseToTop(window.esriLayer); + + } if (this.imageryProvider) { Viewer.imageryLayers.raiseToTop(this.imageryProvider); } @@ -199,10 +269,10 @@ if (window.material) { window.material = null; globe.material = null; - store.state.slopeQueyFla = false + store.state.slopeQueyFlag = false; store.state.showSlopeQuey = false; - + return; } @@ -216,63 +286,11 @@ window.material = Cesium.Material.fromType("ElevationContour"); contourUniforms = material.uniforms; contourUniforms.width = 1.0; - contourUniforms.spacing = 50.0; + contourUniforms.spacing = 100.0; contourUniforms.color = contourColor; globe.material = window.material; -// this.showContourLine(); + }, - showContourLine () { - - window.ddd = { x: -1, y: -1, level: -1 }; - - const clipPlane = Viewer.scene.globe.clipPlanes; - for (let index = 1; index < 20; index++) { - clipPlane.push({ - plane: new SmartEarth.Cesium.Plane( - new SmartEarth.Cesium.Cartesian3(0, 0, -1), - (index * 50 )- 1000 - ), - font: "Arial", - fontSize: 20, - fontColor: "#5151F1", - minShowLevel: 2, - }); - } - - // setTimeout(() => { - // clipPlane.length = 0; - // }, 10000); - - // this.updateMaterial(); - }, - updateMaterial () { - const layers = []; - for (let index = 1; index < 20; index++) { - const band = { - entries: [ - { - height: (index * 50 )- 1001, - color: new SmartEarth.Cesium.Color(0.0, 1.0, 0.0, 0.0), - }, - { - height: (index * 50 )- 1000, - color: new SmartEarth.Cesium.Color(0.0, 1.0, 0.0, 1.0), - }, - ], - }; - layers.push(band); - } - const material = SmartEarth.Cesium.createElevationBandMaterial({ - scene: Viewer.scene, - layers: layers, - type:"ElevationContour" - }); - Viewer.scene.globe.material = material; - }, - - - - zeroFill(num, len, radix) { var str = num.toString(radix || 10) @@ -486,9 +504,9 @@ break; case "l3": //鍦ㄧ嚎鍒跺浘 store.state.isShowMap = true; - setTimeout(() => { + setTimeout(() => { this.setThematicMap(); - }, 200); + }, 200); break; case "l4": @@ -590,7 +608,7 @@ //鍦ㄧ嚎鍒跺浘 setThematicMap() { - + earthCtrl.coreMap.scene.mode = SmartEarth.Cesium.SceneMode.SCENE2D; // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler( // earthCtrl.viewer.scene.canvas @@ -684,10 +702,13 @@ }, //绾挎极娓� lineRoam() { + Viewer.scene.globe.depthTestAgainstTerrain = true; + // 缁樺埗璺嚎骞惰幏鍙栬矾寰勫姩鐢绘暟鎹� earthCtrl.Command.execute(2, 3, "", (data) => { + data.showPoint = false; data.showLine = true; - data.mode = 1; + data.mode = 0; // 寮圭獥鏁版嵁 window.PathAnimationData = { flyData: data, @@ -705,6 +726,7 @@ }, }); }); + }, //娓呴櫎鎸夐挳 clearALL(id) { @@ -713,10 +735,19 @@ // }); }, + setCloseEsriLayer() { + if (window.esriLayer) { + Viewer.imageryLayers.remove(window.esriLayer); + window.esriLayer = null + this.legendBox = null; + store.state.showlegendLayer = false; + } + }, //娓呴櫎鏂规硶 clearTopTools(id) { store.state.doubleMap = false; store.state.doubleMenu = false; + this.setCloseEsriLayer(); if (earthCtrl.shadows) { Viewer.animation.container.style.visibility = "hidden"; Viewer.timeline.container.style.visibility = "hidden"; -- Gitblit v1.9.3