src/components/mapsdk.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/preview_map.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/Synthesis/LeftMenu.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/Tools/LayerTree.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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维切换" 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); 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", // }, ], [ { 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(); }