From b0623031f7839e3f5b061f712c6ead91f57db5cf Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期日, 08 十月 2023 15:42:37 +0800 Subject: [PATCH] 地块展示效果优化 --- src/assets/js/rpc.js | 103 +++++++++++++++++++++++++++------------------------ 1 files changed, 55 insertions(+), 48 deletions(-) diff --git a/src/assets/js/rpc.js b/src/assets/js/rpc.js index a216f8b..939495f 100644 --- a/src/assets/js/rpc.js +++ b/src/assets/js/rpc.js @@ -85,7 +85,7 @@ ]).then(result => { var that = this; store.queryLayer.data = []; - //浼乿涓� + //浼佷笟 var EntArr = result[0].result.filter(item => { return item.entName.includes(res); }); @@ -114,30 +114,22 @@ that.objArr.push(itemObj); }); //鍦板潡 - var LandArr = result[2].candidates.filter(item => { + var LandArr = result[2].candidates.filter((item) => { return item.attributes.QYMC.includes(res); - }); + }) // 缁撴灉鏍规嵁QYMC浠庣煭鍒伴暱鎺掑簭 - LandArr.sort((a, b) => - b.attributes.QYMC.length === a.attributes.QYMC.length - ? 0 - : a.attributes.QYMC.length > b.attributes.QYMC.length - ? 1 - : -1 - ); - - LandArr.forEach(val => { + LandArr.sort((a, b) => (b.attributes.QYMC.length === a.attributes.QYMC.length ? 0 : a.attributes.QYMC.length > b.attributes.QYMC.length ? 1 : -1)) + LandArr.forEach((val) => { let itemObj = { type: "鍦板潡", name: val.attributes.QYMC, area: val.attributes.area, code: val.attributes["鍦板潡缂�"], lon: val.location.x, - lat: val.location.y + lat: val.location.y, }; that.objArr.push(itemObj); }); - if (index == length) { if (that.objArr.length <= 0) { @@ -185,37 +177,46 @@ }, // 鏄剧ず鍦板潡鑼冨洿 getLandmass(res) { + let that = this; - // 鍒掔嚎 - getDiKuanFanWei(res.lon, res.lat).then(response => { - let center = { lon: 0, lat: 0 }; - let polygon = that.read(response.geometry); - if (polygon.length > 0) { - var geometry = []; - let points = polygon[0].split(","); - for (let i = 0; i < points.length; i++) { - let point = points[i].replace(/^\s+|\s+$/g, "").split(" "); - center.lon += parseFloat(point[0]) / points.length; - center.lat += parseFloat(point[1]) / points.length; - geometry.push({ - x: parseFloat(point[0]), - y: parseFloat(point[1]), - z: 0 - }); + if (res.type == "鍥尯") { + + } else if (res.type == "鍦板潡") { + + getDiKuanFanWei(res.lon, res.lat).then(response => { + let center = { lon: 0, lat: 0 }; + let polygon = that.read(response.geometry); + if (polygon.length > 0) { + var geometry = []; + let points = polygon[0].split(","); + for (let i = 0; i < points.length; i++) { + let point = points[i].replace(/^\s+|\s+$/g, "").split(" "); + // center.lon += parseFloat(point[0]) / points.length; + // center.lat += parseFloat(point[1]) / points.length; + geometry.push(parseFloat(point[0]), parseFloat(point[1])) + + } + that.setLacationLineClear() + var position = Cesium.Cartesian3.fromDegreesArray(geometry) + + that.lacationLine = Viewer.entities.add({ + name: "绔嬩綋澧欐晥鏋�", + wall: { + positions: position, + + + material: new Cesium.DynamicWallMaterialProperty({ + color: Cesium.Color.RED, + duration: 4000 + }), + // 璁剧疆楂樺害 + maximumHeights: Array(position.length).fill(80), + minimumHeights: Array(position.length).fill(10), + } + }) } - if (that.lacationLine) { - sgworld.Creator.DeleteObject(that.lacationLine); - that.lacationLine = null; - } - that.lacationLine = sgworld.Creator.createPolyline( - geometry, - "#ff0000", - 1, - 0, - "绾�" - ); - } - }); + }); + } }, read(wkt) { @@ -642,7 +643,7 @@ }); setTimeout(() => { this.setClearPointFly(); - }, 5000); + }, 8000); }, changeCameraHeading(res) { var nextIndex = this.marksIndex + 1; @@ -765,10 +766,8 @@ this.instance && this.instance.$destroy(); this.instance = null; } - if (this.lacationLine) { - sgworld.Creator.DeleteObject(this.lacationLine); - this.lacationLine = null; - } + //鍦板潡 + this.setLacationLineClear() // 杞ㄨ抗绾� this.setClosePathLine(); // 婕父 @@ -777,6 +776,14 @@ this.setClearPointFly(); vueEvents.$emit("queryLayer", false); }, + + + setLacationLineClear() { + if (this.lacationLine) { + Viewer.entities.remove(this.lacationLine) + this.lacationLine = null; + } + }, setClearPointFly() { if (this.pointerFly) { this.pointerFly && this.pointerFly.end(); -- Gitblit v1.9.3