From d459ed6249863d4926a0a3c0c8bb1cd098cedfeb Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 08 八月 2023 16:59:56 +0800 Subject: [PATCH] 发布管理添加DOM,DEM附件长传查询;las数据添加比例设置 --- src/views/datamanage/uploadmanage.vue | 31 ++--- src/assets/lang/zh.js | 2 src/views/Tools/LayerTree.vue | 15 ++ src/components/preview_map.vue | 197 +++++++++++++++++++++++++++++++++++--- src/assets/lang/en.js | 1 src/components/mapsdk.vue | 32 ++++++ 6 files changed, 240 insertions(+), 38 deletions(-) diff --git a/src/assets/lang/en.js b/src/assets/lang/en.js index 66cb75a..da81f2d 100644 --- a/src/assets/lang/en.js +++ b/src/assets/lang/en.js @@ -173,6 +173,7 @@ dataRelease: 'Data release', releaseList: 'Release list', modelAttachMount: 'Model attachment mounting', + attachMount: 'Attachment mounting', publishTask: "Publish Task" }, dataLoading: 'dataLoading', diff --git a/src/assets/lang/zh.js b/src/assets/lang/zh.js index 0fecfcb..150925b 100644 --- a/src/assets/lang/zh.js +++ b/src/assets/lang/zh.js @@ -166,7 +166,7 @@ dataRelease: '鏁版嵁鍙戝竷', releaseList: '鍙戝竷娓呭崟', modelAttachMount: '妯″瀷闄勪欢鎸傝浇', - + attachMount: '闄勪欢鎸傝浇', publishTask: "鍙戝竷浠诲姟" }, diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue index fd75f70..805004c 100644 --- a/src/components/mapsdk.vue +++ b/src/components/mapsdk.vue @@ -966,7 +966,9 @@ this.$bus.$on("titleDown", res => { this.setDownLoadTitle(res); }); - + this.$bus.$on('annexDownload', res => { + this.setAnnexDownload(res); + }) window.localStorage.setItem('slider_x', this.valueX); window.localStorage.setItem('slider_y', this.valueY); window.localStorage.setItem('slider_z', this.valueZ); @@ -1105,7 +1107,35 @@ this.option && myChart.setOption(this.option); window.addEventListener("resize", myChart.resize); }, + async setAnnexDownload(rs) { + var type, eventid; + if (rs.serveType == 'TMS') { + type = 'DOM'; + eventid = 'dom_' + rs.id; + } else if (rs.serveType == 'DEM') { + type = 'DEM'; + eventid = 'dem_' + rs.id + } + + var obj = { + eventid: eventid, + tabName: type, + }; + const res = await dataLib_selectFiles(obj); + + if (res.code != 200) { + this.$message.error('闄勪欢鏌ヨ澶辫触'); + return + } + if (res.result.length <= 0) { + this.$message('鏆傛棤闄勪欢'); + return + } + + this.attachList = res.result; + this.showAttach = true; + }, setDownLoadTitle(res) { this.signGetPublicKey() this.downTitleFlag = true; diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue index a014193..8fcadfa 100644 --- a/src/components/preview_map.vue +++ b/src/components/preview_map.vue @@ -26,6 +26,7 @@ :props="defaultProps" @node-click="handleNodeClick" @check="handleCheckChange" + @node-contextmenu="rightClick" > </el-tree> </div> @@ -140,6 +141,16 @@ ></el-input> </el-form-item> + <el-form-item + label="姣斾緥:" + v-if="$store.state.previewLayer.type == 'las'" + > + <el-input + size="small" + v-model="modelForm.scale" + ></el-input> + + </el-form-item> <!-- <el-form-item label="閫忔槑搴�:"> <el-input size="small" @@ -167,6 +178,7 @@ <el-tab-pane label="灞炴��" name="first" + v-if="serveType" > <el-form ref="form" @@ -392,6 +404,19 @@ </el-form> </div> <undergroundModel ref="undergroundModel" /> + <el-card + class="box-card" + ref="card" + :style="{ ...rightClickMenuStyle }" + v-show="menuVisible" + > + <div + class="edit" + @click="setShowFile" + > + <i class="el-icon-tickets"></i> 闄勪欢 + </div> + </el-card> </div> </template> @@ -486,6 +511,7 @@ south: null, east: null, north: null, + scale: 1 }, app: { tileset: null, @@ -496,12 +522,44 @@ modelLayerId: null, optionKey: [], modelKeyFlag: false, + menuVisible: false, + rightClickMenuStyle: {}, // 鍙抽敭鑿滃崟鏍峰紡 + serveType: true, + layerData: "lf.sys_style" } }, mounted() { this.init3DMap(); }, methods: { + // 榧犳爣鍙冲嚮浜嬩欢 + rightClick(event, object, node, element) { + if (object.type == 1 || node.data.children != null) return; + if (object.serveType != "TMS" && object.serveType != "DEM") return + + this.menuVisible = true + var type; + if (object.serveType == "TMS") { + type = 'dom_' + this.layerData = "DOM" + } else if (object.serveType == "DEM") { + type = 'dem_' + this.layerData = "DEM" + } + this.serveType = false + this.activeName = 'second' + this.formInline.Id = type + object.id; + this.layerID = type + object.id; + this.$refs.card.$el.style.left = event.pageX + 20 + "px"; + this.$refs.card.$el.style.top = event.pageY + "px"; + + }, + setShowFile() { + + this.dialogVisible = true; + this.getAttacthFlieList(); + this.menuVisible = false + }, //瑁佸壀 setcropping() { var that = this; @@ -597,7 +655,7 @@ } - $.ajax(BASE_URL + "/comprehensive/uploadFiles?token=" + token + "&tabName=lf.sys_style&eventid=" + this.layerID, + $.ajax(BASE_URL + "/comprehensive/uploadFiles?token=" + token + "&tabName=" + this.layerData + "&eventid=" + this.layerID, { type: "post", data: formData, @@ -674,7 +732,7 @@ async getAttacthFlieList() { var obj = { eventid: this.layerID, - tabName: "lf.sys_style" + tabName: this.layerData }; const res = await comprehensive_selectFiles(obj); if (res.code != 200) { @@ -738,6 +796,8 @@ }, handleClose() { + this.layerData = "lf.sys_style" + this.serveType = true; this.dialogVisible = false; this.formInline = { title: '', @@ -810,7 +870,18 @@ this.formInline.title = this.formInline.name; } }, - setChangeTileset(result) { + setChangeTileset(result, check) { + + var nodes = this.$refs.tree.getCheckedNodes(); + var str = []; + for (var i = 0; i < nodes.length; i++) { + var node = this.$refs.tree.getNode(nodes[i]).data.serveType; + if (node != 'DEM') { + str.push(nodes[i]) + } + } + str.push(result[0].id) + this.$refs.tree.setCheckedKeys(str) var value = this.$refs.tree.getCheckedNodes(); var std = []; for (var i in value) { @@ -821,9 +892,33 @@ if (std.indexOf(tile.id) != -1) { this.setAddLayers(tile) } else { - for (var j in Viewer.scene.primitives._primitives) { - if (Viewer.scene.primitives._primitives[j].id == tile.cnName) { - Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j]) + if (tile.serveType == 'DEM') { + + if (window.terrainFlag == '2') { + window.terrainLayer.deleteObject(); + } else if (window.terrainFlag == '1') { + Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); + } + + // + var option = { + url: window.sceneConfig.SGUrl, + layerName: window.sceneConfig.mptName, + requestVertexNormals: true, + }; + window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); + } else if (tile.serveType == 'TMS') { + for (let i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { + if (window.Viewer.imageryLayers._layers[i].name == result.cnName) { + window.Viewer.imageryLayers.remove(window.Viewer.imageryLayers._layers[i]); + break; + } + } + } else { + for (var j in Viewer.scene.primitives._primitives) { + if (Viewer.scene.primitives._primitives[j].id == tile.cnName) { + Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j]) + } } } } @@ -859,6 +954,37 @@ } }); + } else if (rs.serveType == "DEM") { + + if (window.terrainFlag == '2') { + window.terrainLayer.deleteObject(); + } else if (window.terrainFlag == '1') { + Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); + + } + var url = rs.url; + if (rs.url.indexOf("{host}") != -1) { + url = rs.url.replace("{host}", iisHost); + } + window.terrainLayer = null; + window.terrainFlag = '1' + + window.terrainLayer = new Cesium.CesiumTerrainProvider({ + url: url + }); + Viewer.terrainProvider = window.terrainLayer + } else if (rs.serveType == "TMS") { + var url = rs.url; + if (rs.url.indexOf("{host}") != -1) { + url = rs.url.replace("{host}", iisHost); + } + var layer = Viewer.imageryLayers.addImageryProvider( + new Cesium.UrlTemplateImageryProvider({ + url: url, + maximumLevel: 18, + }) + ); + layer.name = rs.cnName; } }, @@ -920,13 +1046,31 @@ } }, handleNodeClick(data) { + this.menuVisible = false if (data.type == 2) { this.currentData = data; - for (var j in Viewer.scene.primitives._primitives) { - if (Viewer.scene.primitives._primitives[j].id == data.cnName) { - Viewer.flyTo(Viewer.scene.primitives._primitives[j]); + + if (data.serveType == 'DEM' || data.serveType == 'TMS') { + if (!data.pubid) return + + this.setQueryPubid(data) + } else { + for (var j in Viewer.scene.primitives._primitives) { + if (Viewer.scene.primitives._primitives[j].id == data.cnName) { + Viewer.flyTo(Viewer.scene.primitives._primitives[j]); + } } } + } + }, + async setQueryPubid(res) { + const data = await comprehensive_selectPubById({ id: res.pubid }) + if (data.code != 200) return; + if (data.result.geom) { + var wkt = this.$wkt.parse(data.result.geom); + Viewer.camera.flyTo({ + destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], 2000), + }); } }, getchilds(source) { @@ -993,6 +1137,7 @@ requestVertexNormals: true, }; window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); + window.terrainFlag = '2' // window.terrainLayer = new Cesium.CesiumTerrainProvider({ // url: demLayer // }); @@ -1003,7 +1148,6 @@ var res = this.$store.state.previewLayer; var type = res.type; res.ulr = res.url.replace("{host}", iisHost); - if (type == 'DEM') { window.terrainLayer.deleteObject(); // Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); @@ -1129,8 +1273,10 @@ this.reload(); }, reload() { + debugger sgworld.Analysis.UndergroundMode(this.app.under, this.modelForm.alpha) var json = JSON.stringify(this.modelForm); + var modelScale = this.modelForm.scale var url = this.$store.state.previewLayer.url.replace("{host}", iisHost); if (!url) return; if (this.app.tileset) Viewer.scene.primitives.remove(this.app.tileset); @@ -1140,13 +1286,14 @@ 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)); - - var converter = Cesium.Transforms.eastNorthUpToFixedFrame; var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(parseFloat(that.modelForm.yaw)), 0, 0); var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); + if (modelScale) { + var scale = Cesium.Matrix4.fromUniformScale(modelScale); + Cesium.Matrix4.multiply(matrix, scale, matrix); + } that.app.tileset._root.transform = matrix; Viewer.flyTo(ts); @@ -1219,6 +1366,8 @@ var converter = Cesium.Transforms.eastNorthUpToFixedFrame; var hpr = new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(parseFloat(f.yaw)), 0, 0); var matrix = Cesium.Transforms.headingPitchRollToFixedFrame(pos, hpr, Cesium.Ellipsoid.WGS84, converter); + var scale = Cesium.Matrix4.fromUniformScale(f.scale); + Cesium.Matrix4.multiply(matrix, scale, matrix); var model = this.app.tileset model._root.transform = matrix; }, @@ -1358,12 +1507,15 @@ if (str.type == 1) { val.push(str); } - if (str.url != null && str.type == 2 && str.serveType == 'Tileset') { - val.push(str); + if (str.url != null && str.type == 2) { + + if (str.serveType == 'Tileset' || str.serveType == '3DML' || str.serveType == 'TMS' || str.serveType == 'DEM') { + val.push(str); + } } - if (str.url != null && str.type == 2 && str.serveType == '3DML') { - val.push(str); - } + // if (str.url != null && str.type == 2 && str.serveType == '3DML') { + // + // } }); var res = this.setTreeData(val); @@ -1463,5 +1615,14 @@ content: "11"; visibility: hidden; } + .box-card { + position: fixed; + display: block; + z-index: 10000; + padding: 0px 0px; + border: 1px solid #ebeef5; + border-radius: 4px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + } } </style> diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 94a139b..0994d6f 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -105,6 +105,13 @@ > <i class="el-icon-download"></i> 鐡︾墖涓嬭浇 </div> + <div + class="edit" + v-show="shwoAnnex" + @click="annexDownload()" + > + <i class="el-icon-tickets"></i> 闄勪欢 + </div> </el-card> </div> </template> @@ -129,6 +136,7 @@ showOpacity: false, // 涓嶉�忔槑搴� shwoTileDown: false, // 鐡︾墖涓嬭浇 menuVisible: false, // 鑿滃崟 + shwoAnnex: false,//闄勪欢 levelArray: [ // 楂樼▼鏁扮粍 0, 40000000, 20000000, 10000000, 5000000, 2000000, 1000000, 500000, 250000, 200000, 100000, 50000, 17000, 9000, 5000, 2000, 1000, 500, 200, @@ -279,7 +287,7 @@ this.showOpacity = ["Tileset", "3DML"].indexOf(object.serveType) > -1; // 涓嶉�忔槑搴� this.shwoTileDown = ["TMS", "DOM"].indexOf(object.serveType) > -1 && object.pubid; // 鐡︾墖涓嬭浇 this.menuVisible = this.showProp || this.shwoHistogram || this.showLocal || this.showOpacity || this.shwoTileDown; // 鑿滃崟 - + this.shwoAnnex = ['DEM', 'TMS'].indexOf(object.serveType) > -1;//闄勪欢 this.$refs.card.$el.style.left = event.pageX + 20 + "px"; this.$refs.card.$el.style.top = event.pageY + "px"; }, @@ -358,6 +366,11 @@ return this.levelArray[this.levelArray.length - 1]; }, + //闄勪欢涓嬭浇 + annexDownload() { + this.$bus.$emit('annexDownload', this.currentData) + }, + // 鐡︾墖涓嬭浇 tileDownload() { this.rmListener(); diff --git a/src/views/datamanage/uploadmanage.vue b/src/views/datamanage/uploadmanage.vue index 8c8a1ab..15f5a3b 100644 --- a/src/views/datamanage/uploadmanage.vue +++ b/src/views/datamanage/uploadmanage.vue @@ -49,7 +49,7 @@ class="tabsSpan" :class="{ changetabs : active == 'third'}" > - <span> {{$t('dataManage.uploadObj.modelAttachMount')}}</span> + <span> {{$t('dataManage.uploadObj.attachMount')}}</span> </div> </div> </div> @@ -807,13 +807,10 @@ <div v-for="item in osgbLasOption" - style="margin-top: 10px; display: flex; align-items: center; " + style="margin-top: 10px; display: flex; justify-content: center; align-items: center; " > - <div - class="contLable" - style=" margin: 0px 10px; float: left;" - > + <div style=" text-align: center; "> {{ item.name }} </div> <!-- <div style="display: flex; align-items: center; margin: 0px 10px;"> @@ -1065,18 +1062,18 @@ var lerro = []; if (this.formInline.type == 'LAS') { for (var i in this.osgbLasOption) { - if (this.osgbLasOption[i].srids) { - var epsg = this.osgbLasOption[i].srids.replace('EPSG:', '') - // srids.push(epsg) - srids.push("00") - - } else { - lerro.push(this.osgbLasOption[i].name) - } + // if (this.osgbLasOption[i].srids) { + // //var epsg = this.osgbLasOption[i].srids.replace('EPSG:', '') + // // srids.push(epsg) + // srids.push("00") + // } else { + // lerro.push(this.osgbLasOption[i].name) + // } + srids.push("00") } - if (lerro.length > 0) { - return this.$message(lerro + '鏈�夋嫨鍙戝竷鏁版嵁鐨勫潗鏍囩郴'); - } + // if (lerro.length > 0) { + // return this.$message(lerro + '鏈�夋嫨鍙戝竷鏁版嵁鐨勫潗鏍囩郴'); + // } // if (!this.osgbLasLayer.strid) { // return this.$message('璇烽�夋嫨鍙戝竷鏁版嵁鐨勫潗鏍囩郴'); -- Gitblit v1.9.3