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 | 323 +++++++++++++++++++++++++++-------------------------- 1 files changed, 162 insertions(+), 161 deletions(-) diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index f83b1a7..e8c1774 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -19,8 +19,14 @@ polygon: SmartEarth.Cesium.Color.fromCssColorString("#ffff0050"), }, exportSquare: null, + imageryProvider: null, + legendBox: null, topTools(res) { this.toolFlag = res.id; + + + Viewer.scene.globe.depthTestAgainstTerrain = false + Viewer.scene.pickTranslucentDepth = false switch (res.id) { case "a2": //鐐规极娓� this.pointRoam(); @@ -97,12 +103,18 @@ Viewer.animation.container.style.visibility = "hidden"; Viewer.timeline.container.style.visibility = "hidden"; Viewer.clock.shouldAnimate = false; - return (earthCtrl.shadows = false); + Viewer.scene.globe.enableLighting = false; + earthCtrl.shadows = false; + return } Viewer.clock.shouldAnimate = true; + Viewer.scene.globe.enableLighting = true; Viewer.animation.container.style.visibility = "visible"; Viewer.timeline.container.style.visibility = "visible"; earthCtrl.shadows = true; + earthCtrl.terrainShadows = SmartEarth.Cesium.ShadowMode.ENABLED + + earthCtrl.shadowMap.size = 1024 }, setLocalPosition(res) { if (this.localPoint) { @@ -131,13 +143,81 @@ }, //鍧″害鍒嗘瀽 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; globe.material = null; Viewer.scene.globe.enableLighting = false; + store.state.slopeQueyFlag = false; + store.state.showSlopeQuey = false; return; } + store.state.slopeQueyFlag = true; window.material = new Cesium.Material({ fabric: { type: "ElevationRamp", @@ -152,13 +232,47 @@ Viewer.scene.globe.material = window.material; }, + setImageLayerChange() { + if (window.esriLayer) { + Viewer.imageryLayers.raiseToTop(window.esriLayer); + } + if (this.imageryProvider) { + Viewer.imageryLayers.raiseToTop(this.imageryProvider); + } + }, //绛夐珮绾� setcontour() { + // if (this.imageryProvider) { + // Viewer.imageryLayers.remove(this.imageryProvider); + // this.imageryProvider = null; + // return + // } + // var that = this; + // var imageryProvider = new Cesium.UrlTemplateImageryProvider({ + // url: 'http://192.168.20.83:80/Moon/LFData/2d/tiles/contour_500/{mz}/{my}/{mx}.png', + // tilingScheme: new Cesium.GeographicTilingScheme(), + // customTags: { + // mz: function (imageryProvider, x, y, level) { + // return 'L' + that.zeroFill(level + 1, 2, 10); // 娉ㄦ剰瑙傛祴锛屽眰绾у姞1浜� + // }, + // mx: function (imageryProvider, x, y, level) { + // return 'C' + that.zeroFill(x, 8, 16); + // }, + // my: function (imageryProvider, x, y, level) { + // return 'R' + that.zeroFill(y, 8, 16); + // } + // } + // }); + // this.imageryProvider = Viewer.imageryLayers.addImageryProvider(imageryProvider); var globe = window.Viewer.scene.globe; if (window.material) { window.material = null; globe.material = null; + + store.state.slopeQueyFlag = false; + store.state.showSlopeQuey = false; + return; } @@ -175,6 +289,16 @@ contourUniforms.spacing = 100.0; contourUniforms.color = contourColor; globe.material = window.material; + + }, + + zeroFill(num, len, radix) { + var str = num.toString(radix || 10) + while (str.length < len) { + str = '0' + str + } + + return str; }, //绾挎煡璇� spatialLineQuery() { @@ -225,11 +349,11 @@ name: name, polyline: { positions: Cesium.Cartesian3.fromDegreesArray(position), - width: 10.0, + width: 3.0, material: new Cesium.PolylineOutlineMaterialProperty({ - color: Cesium.Color.GREEN.withAlpha(0.2), + color: new Cesium.Color.fromCssColorString('#A6D8AE').withAlpha(0.5), outlineWidth: 1, - outlineColor: Cesium.Color.WHITE, + outlineColor: new Cesium.Color.fromCssColorString('#A6D8AE'), }), clampToGround: true, @@ -241,7 +365,7 @@ name: name, position: Cesium.Cartesian3.fromDegrees(res.lng, res.lat), point: { - color: Cesium.Color.GREEN.withAlpha(0.2), + color: new Cesium.Color.fromCssColorString('#A6D8AE').withAlpha(0.5), pixelSize: 20, heightReference: Cesium.HeightReference.CLAMP_TO_GROUND } @@ -255,9 +379,9 @@ outline: true, outlineWidth: 100, arcType: Cesium.ArcType.RHUMB, - material: Cesium.Color.GREEN.withAlpha(0.2), + material: new Cesium.Color.fromCssColorString('#A6D8AE').withAlpha(0.5), outline: true, // height is required for outline to display - outlineColor: Cesium.Color.WHITE, + outlineColor: new Cesium.Color.fromCssColorString('#A6D8AE') } }); break; @@ -380,7 +504,9 @@ break; case "l3": //鍦ㄧ嚎鍒跺浘 store.state.isShowMap = true; - this.setThematicMap(); + setTimeout(() => { + this.setThematicMap(); + }, 200); break; case "l4": @@ -463,154 +589,6 @@ } }); }, - getEntityAttribute(type, res) { - var obj = {} - store.state.temporaryLayer = null; - if (type == 'point') { - var mataColor = res.point.color._value; - var outlineColor = res.point.outlineColor._value; - - obj = { - id: (new Date()).getTime(), - cnName: res.name, - metaAlpha: mataColor.alpha, - outlineAlpha: outlineColor.alpha, - metaColor: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'), - outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'), - pixelSize: res.point.pixelSize._value, - outlineWidth: res.point.outlineWidth._value, - near: res.point._distanceDisplayCondition._value.near, - far: res.point._distanceDisplayCondition._value.far, - geometry: this.setCartesianToEightFour(res.position.getValue()), - type: 'point', - shpType: 'temporaryLayer', - layerType: '鍩烘湰鐐�', - - } - - } else if (type == 'label') { - var mataColor = res.label.fillColor._value; - var outlineColor = res.label.outlineColor._value; - var backColor = res.label.backgroundColor._value; - obj = { - id: (new Date()).getTime(), - cnName: res.name, - text: res.label.text._value, - font: res.label.font._value, - metaAlpha: mataColor.alpha, - outlineAlpha: outlineColor.alpha, - backAlpha: backColor.alpha, - backColor: this.colorRgbToHex('rgb(' + (backColor.red * 255) + ',' + (backColor.green * 255) + ',' + (backColor.blue * 255) + ')'), - metaColor: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'), - outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'), - scale: res.label.scale._value, - verticalOrigin: Cesium.VerticalOrigin.CENTER,//鍨傜洿浣嶇疆 - horizontalOrigin: Cesium.HorizontalOrigin.CENTER,//姘村钩浣嶇疆 - outlineWidth: res.label.outlineWidth._value, - showBackground: false, - outline: true, - near: res.label._distanceDisplayCondition._value.near, - far: res.label._distanceDisplayCondition._value.far, - geometry: this.setCartesianToEightFour(res.position.getValue()), - type: 'label', - shpType: 'temporaryLayer', - layerType: '鏂囨湰鐐�', - heightReference: true, - checked: true - } - - } else if (type == 'polygon') { - var mataColor = res.polygon.material.color._value; - var outlineColor = res.polygon.outlineColor._value; - var val = res.polygon.hierarchy.getValue().positions; - var geom = []; - for (var i in val) { - var coord = this.setCartesianToEightFour(val[i]) - geom.push(coord.lng, coord.lat) - } - obj = { - id: (new Date()).getTime(), - cnName: res.name, - metaAlpha: mataColor.alpha, - outlineAlpha: outlineColor.alpha, - metaColor: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'), - outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'), - near: res.polygon._distanceDisplayCondition._value.near, - far: res.polygon._distanceDisplayCondition._value.far, - geometry: geom, - type: 'polygon', - shpType: 'temporaryLayer', - layerType: '澶氳竟褰�', - heightReference: true, - checked: true - } - } else if (type == 'polyline') { - - var mataColor = res.polyline.material.color._value; - var outlineColor = res.polyline.material.outlineColor._value; - var val = res.polyline.positions.getValue(); - var geom = []; - for (var i in val) { - var coord = this.setCartesianToEightFour(val[i]) - geom.push([coord.lng, coord.lat]) - } - obj = { - id: (new Date()).getTime(), - cnName: res.name, - metaColor: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'), - outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'), - near: res.polyline._distanceDisplayCondition._value.near, - far: res.polyline._distanceDisplayCondition._value.far, - metaAlpha: mataColor.alpha, - outlineAlpha: outlineColor.alpha, - outlineWidth: res.polyline.material.outlineWidth._value, - width: res.polyline.width, - geometry: geom, - type: 'polyline', - shpType: 'temporaryLayer', - layerType: '绾�', - heightReference: true, - checked: true - } - } else if (type === 'rectangle') { - - var mataColor = res.rectangle.material.color._value; - var outlineColor = res.rectangle.outlineColor._value; - var west = Cesium.Math.toDegrees( - res.rectangle._coordinates.getValue().west - ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴� - var east = Cesium.Math.toDegrees( - res.rectangle._coordinates.getValue().east - ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴� - var north = Cesium.Math.toDegrees( - res.rectangle._coordinates.getValue().north - ); // 鏍规嵁寮у害鑾峰彇鍒扮粡搴� - var south = Cesium.Math.toDegrees( - res.rectangle._coordinates.getValue().south - ); // 鏍规嵁寮у害鑾峰彇鍒扮含搴� - var geom = [west, south, east, north] - obj = { - id: (new Date()).getTime(), - cnName: res.name, - metaColor: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'), - outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'), - near: res.rectangle._distanceDisplayCondition._value.near, - far: res.rectangle._distanceDisplayCondition._value.far, - metaAlpha: mataColor.alpha, - outlineAlpha: outlineColor.alpha, - outlineWidth: res.rectangle.outlineWidth._value, - rotation: 0, - geometry: geom, - type: 'rectangle', - shpType: 'temporaryLayer', - layerType: '鐭╁舰', - heightReference: true, - } - } - - store.state.temporaryLayer = obj; - - }, colorRgbToHex(str) { @@ -630,6 +608,7 @@ //鍦ㄧ嚎鍒跺浘 setThematicMap() { + earthCtrl.coreMap.scene.mode = SmartEarth.Cesium.SceneMode.SCENE2D; // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler( // earthCtrl.viewer.scene.canvas @@ -685,6 +664,8 @@ window.Volumetric.deleteObject(); window.Volumetric = null; } + Viewer.scene.globe.depthTestAgainstTerrain = true + Viewer.scene.pickTranslucentDepth = true window.Volumetric = earthCtrl.analysis.createVolumetricMeasure({}); window.Volumetric.startDrawing(); }, @@ -721,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, @@ -742,6 +726,7 @@ }, }); }); + }, //娓呴櫎鎸夐挳 clearALL(id) { @@ -750,15 +735,26 @@ // }); }, + 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"; Viewer.clock.shouldAnimate = false; - return (earthCtrl.shadows = false); + Viewer.scene.globe.enableLighting = false; + earthCtrl.shadows = false; + return } if (window.Volumetric) { window.Volumetric.deleteObject(); @@ -773,7 +769,12 @@ window.material = null; globe.material = null; Viewer.scene.globe.enableLighting = false; - return; + store.state.slopeQueyFlag = false; + store.state.showSlopeQuey = false; + } + if (this.imageryProvider) { + Viewer.imageryLayers.remove(this.imageryProvider) + this.imageryProvider = null; } if (window.DoubleScreen) { window.DoubleScreen && window.DoubleScreen.destroy(); @@ -843,7 +844,7 @@ offset: { heading: Cesium.Math.toRadians(0.0), pitch: Cesium.Math.toRadians(-90), - range: 0 + range: 40 } } ); @@ -901,7 +902,7 @@ }, }) - window.Viewer.flyTo(locationPolygonEntity, { + window.Viewer.flyTo(polyline, { offset: { heading: Cesium.Math.toRadians(0.0), pitch: Cesium.Math.toRadians(-90), -- Gitblit v1.9.3