| | |
| | | </div> |
| | | <div style="display: flex"> |
| | | <div |
| | | @click="changeMenulayer" |
| | | class="center CenDiv" |
| | | :class="{ center1: centerFlag }" |
| | | class="changeTerrain" |
| | | @click="changeTerrainLayer" |
| | | > |
| | | <div |
| | | title="地形切换" |
| | | id="cenBg" |
| | | v-bind:class="{ active: isActive, menuLayer: isMenuLayer }" |
| | | class="mapTerrain" |
| | | ></div> |
| | | </div> |
| | | <div |
| | | @click="changeMenulayer" |
| | | class="center CenDiv" |
| | | > |
| | | <div |
| | | title="底图切换" |
| | | id="cenBg" |
| | | class="mapBaseMap" |
| | | ></div> |
| | | </div> |
| | | |
| | | <div |
| | | @click="changeMapType" |
| | | class="changeMapType" |
| | | > |
| | | <div |
| | | title="2/3维切换" |
| | | id="cenBg" |
| | | :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'" |
| | | ></div> |
| | |
| | | <div |
| | | class="propertiesPop" |
| | | v-if="$store.state.propertiesFlag == '1'" |
| | | v-drag |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header"> |
| | | <span>属性信息</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <el-link |
| | | v-if="$store.state.propertiesName.tabDesc == '勘察工点'" |
| | | type="primary" |
| | | :underline="false" |
| | | @click="getPointInfo" |
| | | style="margin-right: 10px" |
| | | v-if="$store.state.propertiesName.enName == 's_surveyworksite'" |
| | | type="primary" |
| | | :underline="false" |
| | | @click="getPointInfo" |
| | | style="margin-right: 10px" |
| | | >勘察信息表</el-link> |
| | | <el-link |
| | | type="primary" |
| | |
| | | </div> |
| | | <!--勘察信息弹窗--> |
| | | <div |
| | | class="attributionPop" |
| | | v-if="showAttribute" |
| | | v-drag |
| | | class="attributionPop" |
| | | v-if="showAttribute" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header"> |
| | | <span>勘察信息</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="showAttribute=false" |
| | | class="el-icon-close" |
| | | @click="showAttribute=false" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="pointInfoBoxContext" |
| | | style="height:250px;overflow-y: auto" |
| | | class="pointInfoBoxContext" |
| | | style="height:250px;overflow-y: auto" |
| | | > |
| | | <div |
| | | style="line-height: 20px" |
| | | v-for="(item, index) in attributeList" |
| | | :key="index" |
| | | style="line-height: 20px" |
| | | v-for="(item, index) in attributeList" |
| | | :key="index" |
| | | > |
| | | <span |
| | | style="font-size: 14px;font-weight: bold;margin-right: 5px" |
| | | >{{item.alias}}:</span> |
| | | <span style="font-size: 14px;font-weight: bold;margin-right: 5px">{{item.alias}}:</span> |
| | | <span>{{item.value ? item.value :'暂无数据'}}</span> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | |
| | | </el-card> |
| | | </div> |
| | | <!--三维截面分析弹窗--> |
| | | <div |
| | | class="modelClipPop" |
| | | v-if="$store.state.propertiesFlag == '3'" |
| | | > |
| | | <div class="slide-bg"> |
| | | <el-slider |
| | | class="slide" |
| | | @change="valveChange()" |
| | | :min="-300" |
| | | :max="300" |
| | | v-model="valueX" |
| | | ></el-slider> |
| | | <span>左右截面</span> |
| | | </div> |
| | | <div class="slide-bg"> |
| | | <el-slider |
| | | class="slide" |
| | | @change="valveChange()" |
| | | :min="-300" |
| | | :max="300" |
| | | v-model="valueY" |
| | | ></el-slider> |
| | | <span>前后截面</span> |
| | | </div> |
| | | <div class="slide-bg"> |
| | | <el-slider |
| | | class="slide" |
| | | @change="valveChange()" |
| | | :min="-300" |
| | | :max="300" |
| | | v-model="valueZ" |
| | | ></el-slider> |
| | | <span>上下截面</span> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--附件列表弹窗--> |
| | |
| | | <!-- v-bind:class="{ active: isActive, menuLayer: isMenuLayer }"--> |
| | | <!-- ></div>--> |
| | | <!-- </div>--> |
| | | |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import $ from "jquery"; |
| | | import mapMenuTop from "./MapView/mapMenuTop.vue"; |
| | | import mapSpaceTop from "./MapView/mapSpaceTop.vue"; |
| | | |
| | | import { |
| | | select_Comprehensive_ByPageAndCount, |
| | | select_Comprehensive_SelectWktById, |
| | |
| | | components: { |
| | | mapMenuTop, |
| | | mapSpaceTop, |
| | | |
| | | }, |
| | | data() { |
| | | var validatePosition = (rule, value, callback) => { |
| | |
| | | }, |
| | | showAttribute: false, |
| | | attributeList: [], |
| | | valueZ: 0, |
| | | valueX: 0, |
| | | valueY: 0, |
| | | terrainflag: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | |
| | | }); |
| | | this.$bus.$on('closeMenuPop', (e) => { |
| | | //非路径分析 |
| | | if (e != 'd3'){ |
| | | if (e != 'd3') { |
| | | this.showPathAnalysisBoxDialog = false; |
| | | } |
| | | //非坡度分析 |
| | | if (e != 'd2'){ |
| | | if (e != 'd2') { |
| | | this.showLengendDialog = false; |
| | | } |
| | | //非地形平整 |
| | | if (e != 'd10'){ |
| | | if (e != 'd10') { |
| | | this.showTerrainLevelDialog = false; |
| | | } |
| | | }); |
| | | //模型捕捉 |
| | | this.catchmodel() |
| | | |
| | | window.localStorage.setItem('slider_x', this.valueX); |
| | | window.localStorage.setItem('slider_y', this.valueY); |
| | | window.localStorage.setItem('slider_z', this.valueZ); |
| | | }, |
| | | methods: { |
| | | |
| | |
| | | }, |
| | | init3DMap() { |
| | | var webKey = "94a34772eb88317fcbf8428e10448561"; |
| | | |
| | | //地图初始化 |
| | | window.sgworld = new SmartEarth.SGWorld("mapdiv", { |
| | | url: SmartEarthRootUrl + "Workers/image/earth.jpg", |
| | | |
| | | licenseServer: window.sceneConfig.licenseServer, |
| | | }); |
| | | |
| | | window.Viewer = window.sgworld._Viewer; |
| | | Viewer.imageryLayers._layers[0].show = false; |
| | | |
| | | //定位 |
| | | // sgworld.Navigate.jumpTo({ |
| | | // //跳转视角 |
| | |
| | | Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000), |
| | | }); |
| | | this.layer1 = Viewer.imageryLayers.addImageryProvider( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[0].url, |
| | | }) |
| | | ); |
| | | |
| | | this.layer2 = Viewer.imageryLayers.addImageryProvider( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[1].url, |
| | | }) |
| | | ); |
| | | // this.layer3 = Viewer.imageryLayers.addImageryProvider( |
| | | // window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider( |
| | | // new Cesium.UrlTemplateImageryProvider({ |
| | | // url: gaoDeBaseUrl[2].url, |
| | | // url: gaoDeBaseUrl[1].url, |
| | | // }) |
| | | // ); |
| | | |
| | | // window.ImageLayer3 = this.layer3; |
| | | |
| | | // for (var i in gaoDeBaseUrl) { |
| | | // sgworld.Creator.createUrlTemplateImageryProvider( |
| | | // gaoDeBaseUrl[i].label, |
| | | // gaoDeBaseUrl[i].url, |
| | | // '0', |
| | | // undefined, |
| | | // true, |
| | | // '' |
| | | // ); |
| | | // } |
| | | |
| | | Viewer._enableInfoOrSelection = false; |
| | | //显示fps |
| | |
| | | //开启深度检测 |
| | | // sgworld.Analysis.depthTestAgainstTerrain(true) |
| | | Viewer.scene.globe.depthTestAgainstTerrain = true; |
| | | //影像对比设置 |
| | | // var base = { |
| | | // url: 'https://a.tile.openstreetmap.org/', |
| | | // }; |
| | | // window.openStreetMap = sgworld.Creator.createImageryProvider( |
| | | // 'OpenStreetMap', |
| | | // 'OpenStreetMap', |
| | | // base, |
| | | // '0', |
| | | // undefined, |
| | | // true, |
| | | // '' |
| | | // ); |
| | | // openStreetMap.item.show = false; |
| | | |
| | | // Viewer.terrainProvider = new Cesium.CesiumTerrainProvider({ |
| | | // url: demLayer, |
| | | // }) |
| | | var option = { |
| | | url: window.sceneConfig.SGUrl, |
| | | layerName: window.sceneConfig.mptName, |
| | | requestVertexNormals: true, |
| | | }; |
| | | sgworld.Creator.sfsterrainprovider("", option, "", true, ""); |
| | | window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); |
| | | |
| | | window.elevationTool = new SmartEarth.ElevationTool(window.sgworld); |
| | | elevationTool.setContourColor("#F1D487"); |
| | | |
| | | // var helper = new Cesium.EventHelper(); |
| | | // helper.add(Viewer.scene.globe.tileLoadProgressEvent, function (e) { |
| | | |
| | | // if (e == 0) { |
| | | // console.log("这个是加载最后一个矢量切片的回调"); |
| | | // } |
| | | // helper.removeAll(); |
| | | // helper = undefined; |
| | | // }); |
| | | }, |
| | | //dem切换 |
| | | changeTerrainLayer() { |
| | | if (this.terrainflag) { |
| | | Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider(); |
| | | var option = { |
| | | url: window.sceneConfig.SGUrl, |
| | | layerName: window.sceneConfig.mptName, |
| | | requestVertexNormals: true, |
| | | }; |
| | | window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); |
| | | Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000), |
| | | }); |
| | | |
| | | } else { |
| | | window.terrainLayer.deleteObject(); |
| | | window.terrainLayer = null; |
| | | |
| | | window.terrainLayer = new Cesium.CesiumTerrainProvider({ |
| | | url: LFData + '/3d/terrain/dem20230321' |
| | | }); |
| | | Viewer.terrainProvider = window.terrainLayer |
| | | Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees(113.229279, 31.215949, 1000), |
| | | orientation: { |
| | | heading: 6.08434611923462, |
| | | pitch: Cesium.Math.toRadians(-45.0), |
| | | roll: 0.0 |
| | | } |
| | | }); |
| | | |
| | | } |
| | | this.terrainflag = !this.terrainflag |
| | | }, |
| | | changeMenulayer() { |
| | | this.isActive = !this.isActive; |
| | | this.isMenuLayer = !this.isMenuLayer; |
| | | this.setLayerVisible(); |
| | | this.$bus.$emit("setChangeBaseMapLayer", true) |
| | | // this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.open("地下模式", null,); |
| | | // this.isActive = !this.isActive; |
| | | // this.isMenuLayer = !this.isMenuLayer; |
| | | // this.setLayerVisible(); |
| | | }, |
| | | setLayerVisible() { |
| | | if (this.isActive == true) { |
| | |
| | | if (this.$store.state.propertiesName == null) { |
| | | return |
| | | } |
| | | let tabName = this.$store.state.propertiesName.ns + '.' + this.$store.state.propertiesName.tab; |
| | | |
| | | let tabName = this.$store.state.propertiesName.ns + '.' + this.$store.state.propertiesName.enName; |
| | | let eventid = this.$store.state.propertiesInfo.eventid; |
| | | |
| | | var obj = { |
| | |
| | | tabName: tabName, |
| | | }; |
| | | const res = await dataLib_selectFiles(obj); |
| | | |
| | | if (res.code != 200) { |
| | | this.$message.error('附件查询失败'); |
| | | return |
| | |
| | | this.$message.error('暂无附件'); |
| | | return |
| | | } |
| | | |
| | | this.attachList = res.result; |
| | | this.showAttach = true; |
| | | }, |
| | |
| | | return m < 10 ? '0' + m : m; |
| | | }, |
| | | //勘察信息表 |
| | | getPointInfo(){ |
| | | this.showAttribute = !this.showAttribute; |
| | | if (this.showAttribute){ |
| | | let attrbuteOption = workSite; |
| | | var name = attrbuteOption[0].table.replaceAll("_", ""); |
| | | this.getAttributeDomFiled(name); |
| | | getPointInfo() { |
| | | |
| | | if (this.showAttribute) { |
| | | |
| | | } |
| | | let attrbuteOption = workSite; |
| | | var name = attrbuteOption[0].table.replaceAll("_", ""); |
| | | this.getAttributeDomFiled(name); |
| | | }, |
| | | //获取每个表字段名称及阈值 |
| | | async getAttributeDomFiled(res) { |
| | |
| | | std.push(data1[i]); |
| | | } |
| | | } |
| | | this.getAttributeTableData(std, res,this.$store.state.propertiesInfo.工点名称,data1) |
| | | this.getAttributeTableData(std, res, this.$store.state.propertiesInfo.工点名称, data1) |
| | | }, |
| | | //获取表格信息 |
| | | async getAttributeTableData(res, name,title,list) { |
| | | async getAttributeTableData(res, name, title, list) { |
| | | let attributeFild = res; |
| | | let parmams = { |
| | | name:name, |
| | | pageIndex:1, |
| | | pageSize:10, |
| | | count:0, |
| | | title:title, |
| | | filter : "workname = " + "'" + title + "'", |
| | | name: name, |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | count: 0, |
| | | title: title, |
| | | filter: "workname = " + "'" + title + "'", |
| | | } |
| | | |
| | | const data = await dataQuery_selectByPage(parmams); |
| | | if (data.code != 200) { |
| | | this.$message.error("调用列表失败,请联系工作人员!"); |
| | | return; |
| | | } |
| | | |
| | | if (!data.result.length) { |
| | | this.$message.error("未查询到勘探信息数据"); |
| | | return |
| | | } |
| | | this.showAttribute = !this.showAttribute; |
| | | var res_val = attributeFild; |
| | | for (var i in data.result) { |
| | | let val_Data = data.result[i]; |
| | |
| | | } |
| | | } |
| | | } |
| | | let info = data.result.length >0 ? data.result[0] : ''; |
| | | if (info){ |
| | | let info = data.result.length > 0 ? data.result[0] : ''; |
| | | if (info) { |
| | | let keys = Object.keys(info); |
| | | keys.forEach((obj) => { |
| | | list.forEach((item) => { |
| | | if (item.field == obj){ |
| | | if (item.field == obj) { |
| | | item.value = info[obj]; |
| | | } |
| | | }) |
| | |
| | | this.attributeList = list; |
| | | } |
| | | }, |
| | | valveChange() { |
| | | window.localStorage.setItem('slider_x', this.valueX); |
| | | window.localStorage.setItem('slider_y', this.valueY); |
| | | window.localStorage.setItem('slider_z', this.valueZ); |
| | | } |
| | | }, |
| | | destroyed() { |
| | | this.showAttribute = false |
| | |
| | | padding: 10px 20px; |
| | | } |
| | | } |
| | | .pathAnalysisBox{ |
| | | .modelClipPop { |
| | | width: 350px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | left: 2%; |
| | | top: 3%; |
| | | background: rgba(255, 255, 255, 0.85); |
| | | border: 1px solid rgba(32, 160, 255, 0.6); |
| | | .slide-bg { |
| | | padding: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | .slide { |
| | | width: 250px; |
| | | margin-left: 5px; |
| | | margin-right: 15px; |
| | | } |
| | | } |
| | | } |
| | | .pathAnalysisBox { |
| | | width: 412px; |
| | | height: 370px; |
| | | z-index: 40; |
| | |
| | | right: 8%; |
| | | bottom: 1%; |
| | | } |
| | | .attributionPop{ |
| | | .attributionPop { |
| | | width: 350px; |
| | | height: 370px; |
| | | z-index: 40; |
| | |
| | | .CenDiv { |
| | | position: absolute; |
| | | bottom: 1%; |
| | | left: 1%; |
| | | left: calc(1% + 75px); |
| | | height: 40px; |
| | | width: 60px; |
| | | z-index: 101; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | box-shadow: 3px 3px 6px #666; |
| | | border: 1px solid rgba(204, 204, 204, 0.76); |
| | | // box-shadow: 3px 3px 6px #666; |
| | | // border: 1px solid rgba(204, 204, 204, 0.76); |
| | | border-radius: 5px; |
| | | cursor: pointer; |
| | | } |
| | |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | } |
| | | .CenDiv:hover { |
| | | border: 1px solid #409eff; |
| | | } |
| | | // .CenDiv:hover { |
| | | // border: 1px solid #409eff; |
| | | // } |
| | | .active { |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | .mapBaseMap { |
| | | width: 100%; |
| | | height: 100%; |
| | | margin-left: 10px; |
| | | background-image: url("../assets/img/synthesis/底图.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: contain; |
| | | } |
| | | .changeMapType { |
| | | position: absolute; |
| | | bottom: 1%; |
| | | left: calc(1% + 75px); |
| | | left: calc(1% + 150px); |
| | | height: 40px; |
| | | width: 60px; |
| | | z-index: 101; |
| | |
| | | |
| | | cursor: pointer; |
| | | } |
| | | .changeTerrain { |
| | | position: absolute; |
| | | bottom: 1%; |
| | | left: 1%; |
| | | height: 40px; |
| | | width: 60px; |
| | | z-index: 101; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | |
| | | border-radius: 5px; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .mapTypeTwo { |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | background-repeat: no-repeat; |
| | | background-size: contain; |
| | | } |
| | | .mapTerrain { |
| | | width: 100%; |
| | | height: 100%; |
| | | margin-left: 10px; |
| | | background-image: url("../assets/img/synthesis/地形.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: contain; |
| | | } |
| | | .mapTypeThree { |
| | | width: 100%; |
| | | height: 100%; |