From 545e343b7ec25fcc95d5a43727c9ebfbd4576b5e Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 18 八月 2023 10:54:20 +0800 Subject: [PATCH] 图层管理修改,空间查询修改,鼠标移动显示经纬度修改 --- src/assets/js/Map/server.js | 4 + src/views/query/SpatialQuery.vue | 6 ++- src/components/mouseMove.vue | 68 ++++++++++++++++------------------ src/views/layer/layerManage.vue | 31 ++++++++++----- src/assets/js/Map/config.js | 2 5 files changed, 61 insertions(+), 50 deletions(-) diff --git a/src/assets/js/Map/config.js b/src/assets/js/Map/config.js index 55edf79..312cdca 100644 --- a/src/assets/js/Map/config.js +++ b/src/assets/js/Map/config.js @@ -1,5 +1,5 @@ //鏄惁涓虹敓浜х幆澧� -const isWeb = true; +const isWeb = false; //鏄惁涓虹敓浜х幆澧� const webUrl = isWeb ? "/web" : ""; //閰嶇疆鏂囦欢鍦板潃 diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index e26f9a9..76e67c4 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -303,6 +303,7 @@ tileset.readyPromise.then((tileset) => { tileset.id = res.id; }); + this.layerList.push({ id: res.id, layerData: tileset, type: "tileset" }); }, //鍦板舰绉婚櫎浜嬩欢 setChangeTearrinLayer() { @@ -334,7 +335,8 @@ {} ); break; - case "": + case "tileset": + window.Viewer.scene.primitives.remove(e.layerData) break; } this.layerList.splice(i, 1); diff --git a/src/components/mouseMove.vue b/src/components/mouseMove.vue index e1fc7ae..dd80289 100644 --- a/src/components/mouseMove.vue +++ b/src/components/mouseMove.vue @@ -12,6 +12,9 @@ <div class="earthLable">{{ longitude }}</div> <div class="earthLable">绾害 :</div> <div class="earthLable">{{ latitude }}</div> + <div class="earthLable">鍦板舰楂樺害 :</div> + <div class="earthLable">{{ altHeight }} </div> + <div class="earthLable">绫�</div> <div class="earthLable">瑙嗚楂樺害 :</div> <div class="earthLable">{{ alt }} </div> <div class="earthLable">鍗冪背</div> @@ -34,7 +37,7 @@ const latitude = ref("0.00"); const rate = ref("0.00"); const alt = ref("0.00"); -const alheight = ref("0.00"); +const altHeight = ref("0.00"); let entitiesObj = reactive({ lonLine: [], @@ -69,31 +72,12 @@ latitude.value = SmartEarth.Cesium.Math.toDegrees( cartographic.latitude ).toFixed(6); - - let scene = window.Viewer.scene; - // 鑾峰彇鐢诲竷鐨勫ぇ灏� - var width = scene.canvas.clientWidth; - var height = scene.canvas.clientHeight; - //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級 - var left = scene.camera.getPickRay( - new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2) + altHeight.value = window.Viewer.scene.globe.getHeight( + Cesium.Cartographic.fromDegrees(longitude.value, latitude.value, 0) ); - var right = scene.camera.getPickRay( - new SmartEarth.Cesium.Cartesian2((1 + width / 2) | 0, (height - 1) / 2) - ); - var globe = scene.globe; - var leftPosition = globe.pick(left, scene); - var rightPosition = globe.pick(right, scene); - if (!Cesium.defined(leftPosition) || !Cesium.defined(rightPosition)) { - return; + if (altHeight.value) { + altHeight.value = altHeight.value.toFixed(6); } - var leftCartographic = - globe.ellipsoid.cartesianToCartographic(leftPosition); - var rightCartographic = - globe.ellipsoid.cartesianToCartographic(rightPosition); - var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic(); - geodesic.setEndPoints(leftCartographic, rightCartographic); - rate.value = geodesic.surfaceDistance.toFixed(6); //鍒嗚鲸鐜� } }, SmartEarth.Cesium.ScreenSpaceEventType.MOUSE_MOVE); @@ -103,18 +87,30 @@ 2 ); alt.value = camera_alt; - // // 鏂逛綅瑙� - // let heading = Cesium.Math.toDegrees(viewer.camera.heading).toFixed(2); - // // 淇话瑙� - // let pitch = Cesium.Math.toDegrees(viewer.camera.pitch).toFixed(2); - // // 缈绘粴瑙� - // let roll = Cesium.Math.toDegrees(viewer.camera.roll).toFixed(2); - // // 绾у埆 - // let level = 0; - // let tileRender = viewer.scene._globe._surface._tilesToRender; - // if (tileRender && tileRender.length > 0) { - // level = viewer.scene._globe._surface._tilesToRender[0]._level; - // } + let scene = window.Viewer.scene; + // 鑾峰彇鐢诲竷鐨勫ぇ灏� + var width = scene.canvas.clientWidth; + var height = scene.canvas.clientHeight; + //鑾峰彇鐢诲竷涓績涓や釜鍍忕礌鐨勫潗鏍囷紙榛樿鍦板浘娓叉煋鍦ㄧ敾甯冧腑蹇冧綅缃級 + var left = scene.camera.getPickRay( + new SmartEarth.Cesium.Cartesian2((width / 2) | 0, (height - 1) / 2) + ); + var right = scene.camera.getPickRay( + new SmartEarth.Cesium.Cartesian2((1 + width / 2) | 0, (height - 1) / 2) + ); + var globe = scene.globe; + var leftPosition = globe.pick(left, scene); + var rightPosition = globe.pick(right, scene); + if (!Cesium.defined(leftPosition) || !Cesium.defined(rightPosition)) { + return; + } + var leftCartographic = + globe.ellipsoid.cartesianToCartographic(leftPosition); + var rightCartographic = + globe.ellipsoid.cartesianToCartographic(rightPosition); + var geodesic = new SmartEarth.Cesium.EllipsoidGeodesic(); + geodesic.setEndPoints(leftCartographic, rightCartographic); + rate.value = geodesic.surfaceDistance.toFixed(6); //鍒嗚鲸鐜� }); }; const gridSwitch = () => { diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index fda3210..84a35a3 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -1,13 +1,22 @@ <template> - <div v-drag class="layerBox"> + <div + v-drag + class="layerBox" + > <div class="layerTitle"> <div class="tileLeft"> - <div @click="setCloseLayer" class="titleImg"> + <div + @click="setCloseLayer" + class="titleImg" + > <ArrowLeft /> </div> <div class="titleLable">鍥惧眰绠$悊</div> </div> - <div class="titleImg set" @click="layerSetBox"> + <div + class="titleImg set" + @click="layerSetBox" + > <Setting /> </div> </div> @@ -34,7 +43,10 @@ Delete </a> </span> --> - <span class="button" v-if="data.isLayer == 1"> + <span + class="button" + v-if="data.isLayer == 1" + > <el-dropdown trigger="click"> <span class="el-dropdown-link"> <el-icon class="el-icon--right"> @@ -43,12 +55,11 @@ </span> <template #dropdown> <el-dropdown-menu> - <el-dropdown-item @click.native="clickdropdown(1, data)" - >璇︾粏</el-dropdown-item - > - <el-dropdown-item @click.native="clickdropdown(2, data)" - >灞炴��</el-dropdown-item - > + <el-dropdown-item @click.native="clickdropdown(1, data)">璇︾粏</el-dropdown-item> + <el-dropdown-item + v-if="data.type == 3" + @click.native="clickdropdown(2, data)" + >灞炴��</el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue index f79d427..91ee2cd 100644 --- a/src/views/query/SpatialQuery.vue +++ b/src/views/query/SpatialQuery.vue @@ -317,14 +317,16 @@ return; } var str = std.filter((res) => { - if (res.type == 2) { + if (res.isLayer == 1 && res.tab) { return res; } }); menuList.value = str; listData.value.wkt = store.state.spatialQueryData.wkt; - listData.value.name = menuList.value[0].name; + var val_name = menuList.value[0].tab.replaceAll("moon:", ""); + val_name = val_name.replaceAll("_", ""); + listData.value.name = val_name; isActive.value = menuList.value[0].id; listData.value.hasGeom = 1; -- Gitblit v1.9.3