From 6e92e7b101c2ea468a4b0d2a19066bc1b4d31764 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 12 五月 2023 18:03:14 +0800 Subject: [PATCH] 发布管理,图层管理页面修改 --- src/views/Tools/LayerTree.vue | 47 +++++++++------ src/views/Synthesis/LeftMenu.vue | 12 ++-- src/components/preview_map.vue | 73 +++++++++++++++++------ src/components/mapsdk.vue | 38 +++++++++++- 4 files changed, 120 insertions(+), 50 deletions(-) diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue index f80f26d..0b7d4b1 100644 --- a/src/components/mapsdk.vue +++ b/src/components/mapsdk.vue @@ -90,7 +90,7 @@ <el-form-item label="绾害:"> <el-input v-model="coordFrom.lat" - placeholder="璇疯緭鍏ョ淮搴�" + placeholder="璇疯緭鍏ョ含搴�" ></el-input> </el-form-item> <el-form-item label="楂樺害:"> @@ -312,7 +312,17 @@ </div> <!-- <div style="display: flex;">--> <div - class="changeTerrain" + style=" position: absolute; + bottom: 84px; + right: 46px; + height: 30px; + width: 30px; + z-index: 101; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + border: 1px solid rgba(255, 255, 255, 0.5);" @click="changeTerrainLayer" > <div @@ -324,7 +334,17 @@ <!-- class="center CenDiv"--> <div @click="changeMenulayer" - class="changeLayer" + style=" position: absolute; + bottom: 116px; + right: 46px; + height: 30px; + width: 30px; + z-index: 101; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + border: 1px solid rgba(255, 255, 255, 0.5);" > <div title="搴曞浘鍒囨崲" @@ -335,7 +355,17 @@ <div @click="changeMapType" - class="changeMapType" + style=" position: absolute; + bottom: 52px; + right: 46px; + height: 30px; + width: 30px; + z-index: 101; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + border: 1px solid rgba(255, 255, 255, 0.5);" > <div title="2/3缁村垏鎹�" diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index 1705e6a..d1fe011 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -54,10 +54,12 @@ @click="underground" >鍦颁笅</el-button> <el-button + v-if="$store.state.previewLayer.type != '3dml'" size="small" @click="pickupCoords" >鎷惧彇</el-button> <el-button + v-if="$store.state.previewLayer.type != '3dml'" size="small" @click="reload" > @@ -74,7 +76,10 @@ >淇濆瓨</el-button> </el-form-item> - <el-form-item label="缁忓害:"> + <el-form-item + label="缁忓害:" + v-if="$store.state.previewLayer.type != '3dml'" + > <el-input size="small" v-model="modelForm.lon" @@ -88,7 +93,10 @@ :max="135" ></el-slider> </el-form-item> - <el-form-item label="绾害:"> + <el-form-item + label="绾害:" + v-if="$store.state.previewLayer.type != '3dml'" + > <el-input size="small" v-model="modelForm.lat" @@ -102,7 +110,10 @@ :max="54" ></el-slider> </el-form-item> - <el-form-item label="楂樺害:"> + <el-form-item + label="楂樺害:" + v-if="$store.state.previewLayer.type != '3dml'" + > <el-input size="small" v-model="modelForm.height" @@ -116,7 +127,10 @@ :max="8800" ></el-slider> </el-form-item> - <el-form-item label="瑙掑害:"> + <el-form-item + label="瑙掑害:" + v-if="$store.state.previewLayer.type != '3dml'" + > <el-input size="small" v-model="modelForm.yaw" @@ -791,6 +805,7 @@ } else { url = modelUrl + "/" + res.url } + var tileset = Viewer.scene.primitives.add( new Cesium.Cesium3DTileset({ name: res.cnName, @@ -806,7 +821,10 @@ tileset.id = res.cnName; tileset.layerId = res.id; tileset.pubid = res.pubid; - that.getArgsTileset(tileset, res); + if (res.bak != '3dml') { + that.getArgsTileset(tileset, res); + } + }); } }, @@ -819,7 +837,10 @@ if (data.code != 200) { } else { - this.reloadTile(tileset, data.result.json) + + + this.tileSet(tileset, parseFloat(res.elev)) + } } else { this.tileSet(tileset, parseFloat(res.elev)) @@ -838,7 +859,7 @@ var translation = Cesium.Cartesian3.subtract(Cartesian3_offset, Cartesian3_original, new Cesium.Cartesian3()); //淇敼妯″瀷鐭╅樀 tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); - Viewer.flyTo(tileset); + // Viewer.flyTo(tileset); }, reloadTile(tileset, res) { var vm = JSON.parse(res) @@ -913,7 +934,6 @@ window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); - if (this.$store.state.previewLayer) { var res = this.$store.state.previewLayer; var type = res.type; @@ -976,6 +996,9 @@ if (window.pickedFeature && window.pickedFeature.getProperty) { this.setModeLayerID(pickedFeature); + } else { + this.modelForm.modelid = 'id3dml' + window.ModeKeyIdHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //绉婚櫎浜嬩欢 } } } @@ -1010,6 +1033,7 @@ var that = this; Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) { that.modelForm = JSON.parse(json); + var pos = Cesium.Cartesian3.fromDegrees(parseFloat(that.modelForm.lon), parseFloat(that.modelForm.lat), parseFloat(that.modelForm.height)); @@ -1018,6 +1042,7 @@ var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); that.app.tileset._root.transform = matrix; Viewer.flyTo(ts); + that.app.isBusy = false; }); }, @@ -1055,17 +1080,17 @@ update() { if (!this.modelForm.lon || isNaN(this.modelForm.lon)) { var args = this.getEditTilesetArgs(); - this.modelForm.lon = args.lon; + this.modelForm.lon = args.lon == null ? 0 : args.height; return } if (!this.modelForm.lat || isNaN(this.modelForm.lat)) { var args = this.getEditTilesetArgs(); - this.modelForm.lat = args.lat; + this.modelForm.lat = args.lat == null ? 0 : args.height; return } if (!this.modelForm.height || isNaN(this.modelForm.height)) { var args = this.getEditTilesetArgs(); - this.modelForm.height = args.height; + this.modelForm.height = args.height == null ? 0 : args.height; return } if (!this.modelForm.yaw || isNaN(this.modelForm.yaw)) { @@ -1089,7 +1114,7 @@ setTilesetArgs(f) { if (!this.app.tileset || this.app.isBusy) return; - + debugger var pos = Cesium.Cartesian3.fromDegrees(parseFloat(f.lon), parseFloat(f.lat), parseFloat(f.height)); var converter = Cesium.Transforms.eastNorthUpToFixedFrame; @@ -1145,13 +1170,17 @@ } else { this.getTilesetArgs(); } - }, setModleLocatin() { var res = this.$store.state.previewLayer; var type = res.type; if (this.modelType.indexOf(type) != -1) { - this.setEditModelLayer(res) + if (type != '3dml') { + this.setEditModelLayer(res) + } else { + this.editModelFlag = true; + } + } }, @@ -1189,14 +1218,17 @@ }, getEditTilesetArgs() { this.app.isBusy = true; + var std = { + lon: 0, + lat: 0, + height: 0, + } + + if (!this.app.tileset._root) return std; var cm = this.app.tileset._root.transform; var cartesian = new Cesium.Cartesian3(cm[12], cm[13], cm[14]); var carto = Cesium.Cartographic.fromCartesian(cartesian); - var std = { - lon: null, - lat: null, - height: null, - } + if (carto) { std.lon = Cesium.Math.toDegrees(carto.longitude).toFixed(7); @@ -1241,7 +1273,8 @@ pickedFeature = sgworld.Viewer.scene.pick(event.position); if (Cesium.defined(pickedFeature)) { if (pickedFeature.primitive instanceof Cesium.Cesium3DTileset) { - if (pickedFeature && pickedFeature.getProperty) { + + if (pickedFeature) { pickedColor = pickedFeature.color pickedFeature.color = Cesium.Color.RED.withAlpha(0.3); diff --git a/src/views/Synthesis/LeftMenu.vue b/src/views/Synthesis/LeftMenu.vue index 716a4f1..750b659 100644 --- a/src/views/Synthesis/LeftMenu.vue +++ b/src/views/Synthesis/LeftMenu.vue @@ -441,12 +441,12 @@ name: "鍦颁笅妯″紡", css: "twoMenu_imge29", }, - { - id: "b10", - label: "synthesis.undergroundMode", - name: "鐡︾墖涓嬭浇", - css: "twoMenu_imge29", - }, + // { + // id: "b10", + // label: "synthesis.undergroundMode", + // name: "鐡︾墖涓嬭浇", + // css: "twoMenu_imge29", + // }, ], [ { diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index cce059f..085b369 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -399,6 +399,9 @@ } else if (Node.data.children == null && Node.data.serveType != "Tileset") { this.showlocal = false; this.showopaque = false; + } else if (Node.data.children == null && Node.data.serveType != "DEM") { + this.showlocal = false; + this.showopaque = false; } this.menuVisible = true; @@ -936,6 +939,7 @@ tileset.readyPromise.then((tileset) => { + tileset.id = res.cnName; tileset.layerId = res.id; tileset.pubid = res.pubid; @@ -962,6 +966,9 @@ window.modelHeight = height; } else window.modelHeight = 0; this.getTilesetArgs(tileset, res); + + + }); this.$store.state.setAlphaList.push({ name: res.cnName, @@ -1013,7 +1020,11 @@ if (data.code != 200) { } else { - this.reload(tileset, data.result.json) + if (res.bak != '3dml') { + this.reload(tileset, data.result.json) + } else { + this.tileSet(tileset, parseFloat(res.elev)) + } } } else { this.tileSet(tileset, parseFloat(res.elev)) @@ -1208,7 +1219,7 @@ }, getNewTree(obj, result) { for (const i in obj) { - console.log(obj[i].cnName) + result.push(obj[i]) if (obj[i].children && obj[i].children.length > 0) { this.getNewTree(obj[i].children, result) @@ -1240,20 +1251,22 @@ if (rs.enName == st_code[0].code) { return rs } + if (rs.enName && rs.enName.indexOf(st_code[0].code) > -1) { + return rs + } }) + this.removeAllLayer(); var obj = { dirid: res, pageIndex: 1, pageSize: 10, } - const data = await project_selectByDirid(obj); if (data.code != 200) { this.$message.error("鍒楄〃鑾峰彇澶辫触"); return; } - if (data.result[0]) { var geom = data.result[0].geom if (geom) { @@ -1262,34 +1275,28 @@ destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[0].toFixed(6), wkt.coordinates[1].toFixed(6), 5000), }); } - } this.cannelTerrainLayer(); this.setTerrainMptLayer(); //娓呯┖鍥惧眰鏍戦�変腑鐘舵�� this.$refs.tree.setCheckedKeys([]); if (val.length > 0) { - - if (val[0].type == 1 && val[0].isProject == 1) {//椤圭洰鍒嗙被 - - var std_check = []; - for (var i in val) { + var std_check = []; + for (var i in val) { + if (val[i].type == 1 && val[i].isProject == 1) {//椤圭洰鍒嗙被 var std_val = this.getNewTree([this.$refs.tree.getNode(val[i].id).data], []) for (var j in std_val) { std_check.push(std_val[j]) } } - - - var value = this.$store.state.isProjectLayer; - for (var i in value) { - - std_check.push(value[i]) - } - this.setProjectLayer(std_check); - } else { - this.setChangeProLayer(); } + var value = this.$store.state.isProjectLayer; + for (var i in value) { + std_check.push(value[i]) + } + + + this.setProjectLayer(std_check); } else { this.setChangeProLayer(); } -- Gitblit v1.9.3