From 616b8ab8998bfbec69929152612dc94d3112c2a9 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 10 十月 2023 16:56:26 +0800 Subject: [PATCH] 标绘查询修改,空间查询功能修改,图层管理数据加载方式修改 --- src/assets/js/Map/server.js | 7 +++ src/components/BarGraph.vue | 58 ++++++++++++++++++++++++++--- src/views/plotting/plottingInquire.vue | 13 ++++-- src/views/query/SpatialQuery.vue | 6 ++ src/components/mouseMove.vue | 3 + src/components/BarGraphAxisLine.vue | 12 ++++- src/assets/js/Map/menuTool.js | 10 ++-- src/views/layer/layerManage.vue | 1 8 files changed, 89 insertions(+), 21 deletions(-) diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index f83b1a7..a594538 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -227,9 +227,9 @@ positions: Cesium.Cartesian3.fromDegreesArray(position), width: 10.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 +241,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 +255,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; diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index c99d8b5..752200b 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -401,6 +401,7 @@ that.getFeatureInfo(html); } ); + let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ url: url, layers: res.tab, @@ -430,6 +431,12 @@ that.getFeatureInfo(html); } ); + if (url.indexOf('{token}') > -1) { + const token = getToken(); + url = config.proxy + url.replaceAll("{token}", token); + } else { + url = url; + } let wmslayer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ url: url, layers: layer.toString(), diff --git a/src/components/BarGraph.vue b/src/components/BarGraph.vue index 1dfad68..131d870 100644 --- a/src/components/BarGraph.vue +++ b/src/components/BarGraph.vue @@ -34,6 +34,8 @@ let dataLength; let data = []; let isshow = ref(true); +let myChart = null; +let optionData = []; watch( () => props.layerData, (nVal, oVal) => { @@ -42,8 +44,9 @@ xAxisData.value.push(e.len); }); data = trans(props.layerData.points); - + optionData = props.layerData.points; seriesData.value = []; + data.forEach((e) => { seriesData.value.push({ data: e, @@ -73,13 +76,14 @@ xAxisData.value.push(e.len); }); data = trans(props.layerData.points); + optionData = props.layerData.points; seriesData.value = []; data.forEach((e) => { seriesData.value.push({ data: e, type: "line", smooth: true, - symbol: "none", //鍙栨秷鎶樼偣鍦嗗湀 + label: { label: { show: false, @@ -89,6 +93,7 @@ }, }); }); + nextTick(() => { initChart(); }); @@ -111,11 +116,14 @@ return result; } function initChart() { - let chart = myEcharts.init( + if (myChart) { + myChart.clear(); + } + myChart = myEcharts.init( document.getElementById(`myEcharts`), "purple-passion" ); - chart.setOption({ + myChart.setOption({ // title: { // text: props.layerData.layerName, // left: "center", @@ -163,8 +171,46 @@ backgroundColor: "#6a7985", }, }, - formatter: "鏁板�硷細{c} <br> 璺濈锛歿b}m", //{a}锛堢郴鍒楀悕绉帮級锛寋b}锛堟暟鎹」鍚嶇О锛夛紝{c}锛堟暟鍊硷級, {d}锛堢櫨鍒嗘瘮锛� + + // formatter: "鏁板�硷細{c} <br> 璺濈锛歿b}m", //{a}锛堢郴鍒楀悕绉帮級锛寋b}锛堟暟鎹」鍚嶇О锛夛紝{c}锛堟暟鍊硷級, {d}锛堢櫨鍒嗘瘮锛� + formatter: (result) => { + var val = result[0]; + if (optionData) { + for (var i in optionData) { + var res = optionData[i]; + + if ( + optionData[val.dataIndex].len == res.len && + res.vals[0] == val.data + ) { + return ( + "鏁板�硷細 " + + val.data + + " <br> 璺濈锛�" + + val.dataIndex + + "m<br> 缁忓害锛�" + + res.x.toFixed(6) + + "<br> 绾害锛�" + + res.y.toFixed(6) + ); + break; + } + } + return "鏁板�硷細 " + val.data + " <br> 璺濈锛�" + val.dataIndex + "m"; + } else { + return "鏁板�硷細 " + val.data + " <br> 璺濈锛�" + val.dataIndex + "m"; + } + }, }, + + grid: { + left: "5%", // 缁勪欢绂诲鍣ㄥ乏渚х殑璺濈,鐧惧垎姣斿瓧绗︿覆鎴栨暣鍨嬫暟瀛� + + right: "10%", + + containLabel: true, //grid 鍖哄煙鏄惁鍖呭惈鍧愭爣杞寸殑鍒诲害鏍囩锛� + }, + yAxis: { type: "value", show: true, // 涓嶆樉绀哄潗鏍囪酱绾裤�佸潗鏍囪酱鍒诲害绾垮拰鍧愭爣杞翠笂鐨勬枃瀛� @@ -184,7 +230,7 @@ series: seriesData.value, }); window.onresize = function () { - chart.resize(); + myChart.resize(); }; } </script> diff --git a/src/components/BarGraphAxisLine.vue b/src/components/BarGraphAxisLine.vue index 1db8288..21bae23 100644 --- a/src/components/BarGraphAxisLine.vue +++ b/src/components/BarGraphAxisLine.vue @@ -1,6 +1,12 @@ <template> - <div class="Echarts_box" :style="{ width: width, height: height }"> - <div id="myEchartsBIG" style="width: 100%; height: 100%"></div> + <div + class="Echarts_box" + :style="{ width: width, height: height }" + > + <div + id="myEchartsBIG" + style="width: 100%; height: 100%" + ></div> </div> </template> <script lang="ts" setup> @@ -29,7 +35,6 @@ let dataLength; let data = []; onMounted(() => { - console.log(props.layerData); props.layerData.points.forEach((e, i) => { xAxisData.value.push(returnFloat1(e.len)); }); @@ -191,6 +196,7 @@ tooltip: { trigger: "axis", }, + yAxis: { type: "value", }, diff --git a/src/components/mouseMove.vue b/src/components/mouseMove.vue index 5f9bf46..3d18ea8 100644 --- a/src/components/mouseMove.vue +++ b/src/components/mouseMove.vue @@ -107,13 +107,14 @@ if (!Cesium.defined(leftPosition) || !Cesium.defined(rightPosition)) { return; } + var ellipsoid = SmartEarth.Cesium.Ellipsoid.MOON200; var leftCartographic = globe.ellipsoid.cartesianToCartographic(leftPosition); var rightCartographic = globe.ellipsoid.cartesianToCartographic(rightPosition); var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic(); - geodesic.setEndPoints(leftCartographic, rightCartographic); + geodesic.setEndPoints(leftCartographic, rightCartographic, ellipsoid); rate.value = geodesic.surfaceDistance.toFixed(2); //鍒嗚鲸鐜� }); }; diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index d1a12d9..e22f2b5 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -210,6 +210,7 @@ if (layerArr.category == 2 && layerArr.type == 3) { if (layerArr.tab != "moon:geo_mappable_unit") { setGeoWms.push(layerArr.tab); + url = layerArr.url; } } else { diff --git a/src/views/plotting/plottingInquire.vue b/src/views/plotting/plottingInquire.vue index 4772ca7..3c8089d 100644 --- a/src/views/plotting/plottingInquire.vue +++ b/src/views/plotting/plottingInquire.vue @@ -524,6 +524,8 @@ }); layeroptions.value = dt.result; + + layerValue.value = layeroptions.value[0].layerName; layerArr.value.push(dt.result[0]); chartIsshow.value = true; layerData.value = dt.result[0]; @@ -567,9 +569,7 @@ } } }; -const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); -}; +const handleClick = (tab: TabsPaneContext, event: Event) => {}; // const setCloseplotting = () => { // emits("setCloseplotting", false); // }; @@ -584,14 +584,17 @@ var wkt = WKT.parse(inquireData.value.wkt); if (wkt.type == "Point") { - geoWkt.value = wkt.coordinates[0] + " " + wkt.coordinates[1]; + geoWkt.value = + wkt.coordinates[0].toFixed(6) + " " + wkt.coordinates[1].toFixed(6); geoWktFlag.value = true; } if (wkt.type == "Polygon") { var Polygon = turf.multiPolygon([wkt.coordinates]); var center = turf.center(Polygon); geoWkt.value = - center.geometry.coordinates[0] + " " + center.geometry.coordinates[1]; + center.geometry.coordinates[0].toFixed(6) + + " " + + center.geometry.coordinates[1].toFixed(6); geoWktFlag.value = true; } } diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue index 7123480..6a176a6 100644 --- a/src/views/query/SpatialQuery.vue +++ b/src/views/query/SpatialQuery.vue @@ -622,7 +622,11 @@ return res; } }); - + if (str.length <= 0) { + ElMessage.error("璇烽�夋嫨瑕佹煡璇㈢殑鍥惧眰"); + setSpatialClose(); + return; + } menuList.value = str; listData.value.wkt = store.state.spatialQueryData.wkt; listData.value.name = menuList.value[0].tab.replaceAll("moon:", ""); -- Gitblit v1.9.3