From 6e92e7b101c2ea468a4b0d2a19066bc1b4d31764 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期五, 12 五月 2023 18:03:14 +0800 Subject: [PATCH] 发布管理,图层管理页面修改 --- src/components/preview_map.vue | 73 ++++++++++++++++++++++++++---------- 1 files changed, 53 insertions(+), 20 deletions(-) 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); -- Gitblit v1.9.3