From b1e9c826c1ba48c3dc263039699636ed2ba3be4e Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期一, 27 十一月 2023 11:16:06 +0800 Subject: [PATCH] 版本更新,图层管理添加矢量数据下载,视角高度增加放大限制 --- src/assets/js/Map/temporaryTools.js | 83 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/assets/js/Map/temporaryTools.js b/src/assets/js/Map/temporaryTools.js index f8be7c8..4873e60 100644 --- a/src/assets/js/Map/temporaryTools.js +++ b/src/assets/js/Map/temporaryTools.js @@ -1,5 +1,7 @@ import store from "@/store"; import { none } from "ol/centerconstraint"; +import * as turf from "@turf/turf"; +import WKT from "terraformer-wkt-parser"; var temporaryTool = { isedit: false, removeTemporaryLayer(res) { @@ -7,6 +9,71 @@ for (var i in entities) { if (entities[i].id == res.id && entities[i]._shpType == res.shpType) { window.Viewer.entities.remove(entities[i]) + } + } + }, + removeTemporaryLayerAll() { + var entities = window.Viewer.entities._entities._array; + for (var i = 0; i < entities.length; i++) { + if (entities[i]._shpType && entities[i]._shpType == "temporaryLayer") { + window.Viewer.entities.remove(entities[i]) + i--; + } + } + }, + + getWKT(res) { + var geom = res.geometry; + var coord = null; + + switch (res.type) { + case "point": + case "label": + coord = turf.point([geom.lng, geom.lat]); + break; + case "polygon": + var std = []; + for (var i = 0; i < geom.length; i++) { + if (i % 2 == 0) { + std.push(geom[i], geom[i + 1]) + } + } + coord = turf.polygon([std]); + break; + case "polyline": + var std = []; + for (var i = 0; i < geom.length; i++) { + if (i % 2 == 0) { + std.push(geom[i], geom[i + 1]) + } + } + coord = turf.lineString([std]); + break; + case "rectangle": + coord = turf.polygon([[ + [geom[0], geom[1]], + [geom[0], geom[3]], + [geom[2], geom[3]], + [geom[2], geom[1]], + [geom[0], geom[1]], + ]]); + break; + } + + return WKT.convert(coord.geometry); + + }, + locationTemporaryLayer(res) { + var entities = window.Viewer.entities._entities._array; + for (var i in entities) { + if (entities[i].id == res.id && entities[i]._shpType == res.shpType) { + window.Viewer.flyTo(entities[i], { + offset: { + heading: Cesium.Math.toRadians(0.0), + pitch: Cesium.Math.toRadians(-90), + range: 400 + } + }); } } }, @@ -129,11 +196,13 @@ res.near, res.far ), - outline: true, + outline: false, outlineWidth: res.width, + outlineColor: Cesium.Color.fromCssColorString( res.outlineColor ).withAlpha(res.outlineAlpha), + heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, }, }); }, @@ -142,7 +211,7 @@ if (res.outline) { outlinewidth = res.width } - + window.Viewer.entities.add({ name: res.cnName, id: res.id, @@ -156,7 +225,7 @@ res.near, res.far ), - + material: new Cesium.PolylineOutlineMaterialProperty({ color: Cesium.Color.fromCssColorString(res.material).withAlpha( res.materialAlpha @@ -263,6 +332,7 @@ var coord = this.setCartesianToEightFour(val[i]) geom.push(coord.lng, coord.lat) } + return { id: this.isedit ? res.id : (new Date()).getTime(), cnName: res.name, @@ -276,7 +346,7 @@ type: 'polygon', shpType: 'temporaryLayer', layerType: '澶氳竟褰�', - outline: res.outline != null ? res.outline : false, + outline: res.polygon.outline != null ? res.polygon.outline._value : false, width: res.polygon.outlineWidth ? res.polygon.outlineWidth._value : 1, } }, @@ -339,7 +409,7 @@ layerType: '绾�', geometry: geom, heightReference: res.polyline.clampToGround._value, - outline: res.outline != null ? res.outline : false, + outline: res.outline != null ? res.outline : false, width: res.polyline.width._value, material: 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) + ')'), @@ -361,7 +431,6 @@ if (res.label.outlineWidth && res.label.outlineWidth._value) { width = res.label.outlineWidth._value } - return { id: this.isedit ? res.id : (new Date()).getTime(), cnName: res.name, @@ -386,7 +455,6 @@ layerType: '鏂囨湰鐐�', } }, - getPointEntityObj(res) { var mataColor = res.point.color._value; var outlineColor = res.point.outlineColor._value; @@ -408,6 +476,7 @@ layerType: '鍩烘湰鐐�', heightReference: res.point.disableDepthTestDistance != null ? false : true, size: res.point.pixelSize._value, + } }, -- Gitblit v1.9.3