| | |
| | | <map-menu-top v-if="$store.state.mapMenuBoxFlag == '1'" /> |
| | | <map-space-top v-if="$store.state.mapMenuBoxFlag == '2'" /> |
| | | </div> |
| | | |
| | | <div |
| | | class="bufferBox" |
| | | v-if="showBufferBoxDialog" |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!--坐标点位--> |
| | | <div |
| | | class="coordLocalBox" |
| | | v-if="showCoordLocalBoxDialog" |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!--地形平整--> |
| | | <div |
| | | class="terrainLevelBox" |
| | | v-if="showTerrainLevelDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header"> |
| | | <span>地形平整</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(5)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div class="box-body"> |
| | | <el-form |
| | | ref="form" |
| | | :model="terrainFrom" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="平整高度:"> |
| | | <el-input v-model="terrainFrom.height"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | @click="drawTerrainLevel" |
| | | type="parmary" |
| | | >绘制</el-button> |
| | | <el-button |
| | | @click="clearTerrainLevel" |
| | | type="info" |
| | | >清除</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div |
| | | class="toponymicLocalBox" |
| | | v-if="showToponymicLocalBoxDialog" |
| | |
| | | <el-form |
| | | :model="comprehensive" |
| | | :inline="true" |
| | | label-width="50px" |
| | | > |
| | | <el-form-item label="地名:"> |
| | | <el-input |
| | | style="width: 200px" |
| | | style="width: 160px" |
| | | v-model="comprehensive.name" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-table |
| | | :data="tableData" |
| | | height="200px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | type="index" |
| | | label="序号" |
| | | width="70px" |
| | | /> |
| | | <el-table-column |
| | | prop="name" |
| | | align="center" |
| | | label="定位" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="handleLocation(scope.$index, scope.row)" |
| | | size="small" |
| | | icon="el-icon-place" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | align="center" |
| | | label="地名" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="handleLocation(scope.$index, scope.row)" |
| | | size="small" |
| | | >{{scope.row.name}}<i |
| | | class="el-icon-place" |
| | | style="padding-left: 5px" |
| | | ></i></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="name"--> |
| | | <!-- align="center"--> |
| | | <!-- label="定位"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button--> |
| | | <!-- @click="handleLocation(scope.$index, scope.row)"--> |
| | | <!-- size="small"--> |
| | | <!-- icon="el-icon-place"--> |
| | | <!-- ></el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="name"--> |
| | | <!-- align="center"--> |
| | | <!-- label="地名"--> |
| | | <!-- >--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | <div class="pagination_box"> |
| | | <el-pagination |
| | |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :pager-count="3" |
| | | :page-size="listData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | layout="total, prev, pager, next" |
| | | :total="count" |
| | | > |
| | | </el-pagination> |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!-- 路径分析弹窗--> |
| | | <div |
| | | class="pathAnalysisBox" |
| | | v-if="showPathAnalysisBoxDialog" |
| | |
| | | :underline="false" |
| | | @click="showMouseLeftClick(1)" |
| | | style="margin-left: 10px" |
| | | ><i |
| | | style="color: white" |
| | | class="el-icon-plus" |
| | | ></i></el-link> |
| | | ><i class="el-icon-plus"></i></el-link> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="终点:" |
| | |
| | | :underline="false" |
| | | @click="showMouseLeftClick(2)" |
| | | style="margin-left: 10px" |
| | | ><i |
| | | style="color: white" |
| | | class="el-icon-plus" |
| | | ></i></el-link> |
| | | ><i class="el-icon-plus"></i></el-link> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | |
| | | </div> |
| | | </el-card> |
| | | </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> |
| | | <!-- class="center CenDiv"--> |
| | | <div |
| | | @click="changeMenulayer" |
| | | class="changeLayer" |
| | | > |
| | | <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> |
| | | <!-- </div>--> |
| | | <!-- 坡度分析弹窗--> |
| | | <div |
| | | class="lengend" |
| | | v-show="showLengendDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div class="lengendBox"> |
| | | <div> |
| | | <img |
| | | class="lengendImg" |
| | | src="../assets/img/colors.png" |
| | | /> |
| | | </div> |
| | | <div class="lengendSpan"> |
| | | <div>0°</div> |
| | | <div>17.5°</div> |
| | | <div>35°</div> |
| | | <div>52.5°</div> |
| | | <div>70°</div> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div |
| | | class="HistLeng" |
| | | v-show="$store.state.histLenged" |
| | | > |
| | | <el-card class="box-card"> |
| | | <table> |
| | | <tr> |
| | | <td>粉质黏土</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(139,106,77,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>淤泥质粉土</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(141,85,69,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>圆砾</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(102,166,184,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>卵石</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(54,83,173,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>泥岩</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(47,30,13,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>细砂</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(93,88,15,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>中砂</td> |
| | | <td> |
| | | <div style="width:100px;height:20px;background:rgba(164,140,21,1)"> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </el-card> |
| | | </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.enName == 's_surveyworksite'" |
| | | type="primary" |
| | | :underline="false" |
| | | @click="getPointInfo" |
| | | style="margin-right: 10px" |
| | | >勘察信息表</el-link> |
| | | <el-link |
| | | type="primary" |
| | | :underline="false" |
| | | @click="getAttatchList" |
| | | style="margin-right: 10px" |
| | | >查看附件</el-link> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(6)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="pointInfoBoxContext" |
| | | style="height:250px;overflow-y: auto" |
| | | > |
| | | <div |
| | | style="line-height: 20px" |
| | | v-for="(value, key) in $store.state.propertiesInfo" |
| | | :key="key" |
| | | > |
| | | <span |
| | | v-if="key != 'eventid'" |
| | | style="font-size: 14px;font-weight: bold;margin-right: 5px" |
| | | >{{key}}:</span> |
| | | <span v-if="key != 'eventid'">{{value}}</span> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <!--勘察信息弹窗--> |
| | | <div |
| | | 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" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="pointInfoBoxContext" |
| | | style="height:250px;overflow-y: auto" |
| | | > |
| | | <div |
| | | 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>{{item.value ? item.value :'暂无数据'}}</span> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | |
| | | <div |
| | | class="propertiesPop" |
| | | v-if="$store.state.propertiesFlag == '2'" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header"> |
| | | <span>{{ $store.state.propertiesInfo.title }}</span> |
| | | </div> |
| | | <div |
| | | class="pointInfoBoxContext" |
| | | style="height:250px;overflow-y: auto" |
| | | > |
| | | <div style="line-height: 20px">岩土名称: {{ $store.state.propertiesInfo.name }}</div> |
| | | <div style="line-height: 20px">岩土类型: {{ $store.state.propertiesInfo.type }}</div> |
| | | <div style="line-height: 20px">层底深度: {{ $store.state.propertiesInfo.botdepth }} 米</div> |
| | | <div style="line-height: 20px">描述: {{ $store.state.propertiesInfo.describe }}</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> |
| | | |
| | | <!--附件列表弹窗--> |
| | | <el-dialog |
| | | title="附件列表" |
| | | :append-to-body="false" |
| | | :visible.sync="showAttach" |
| | | width="35%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div> |
| | | <el-table |
| | | :data="attachList" |
| | | height="100%" |
| | | style="width: 100%" |
| | | border |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | type="index" |
| | | label="序号" |
| | | width="50" |
| | | /> |
| | | <el-table-column |
| | | prop="name" |
| | | label="名称" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="时间" |
| | | width="180" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{format(scope.row.createTime)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | width="100" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | v-if="showAttachDetailBtn(scope.row)" |
| | | @click="showAttachDetail(scope.row)" |
| | | type="text" |
| | | size="small" |
| | | >查看</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-dialog> |
| | | <!--附件弹窗--> |
| | | <el-dialog |
| | | title="预览" |
| | | :append-to-body="false" |
| | | :visible.sync="dialog.dialogVisible" |
| | | width="70%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div |
| | | v-if="dialog.isPdf" |
| | | class="pdfClass" |
| | | > |
| | | <iframe |
| | | :src="dialog.src" |
| | | type="application/x-google-chrome-pdf" |
| | | width="100%" |
| | | height="100%" |
| | | > |
| | | </iframe> |
| | | </div> |
| | | <div |
| | | v-if="dialog.isJpg" |
| | | class="pdfClass" |
| | | > |
| | | <el-image |
| | | style="width:100%; height:100%" |
| | | :src="dialog.src" |
| | | :preview-src-list="[dialog.src]" |
| | | > |
| | | </el-image> |
| | | |
| | | </div> |
| | | </el-dialog> |
| | | <!-- <div--> |
| | | <!-- @click="changeMenulayer"--> |
| | | <!-- class="center CenDiv"--> |
| | | <!-- :class="{ center1: centerFlag }"--> |
| | | <!-- >--> |
| | | <!-- <div--> |
| | | <!-- id="cenBg"--> |
| | | <!-- v-bind:class="{ active: isActive, menuLayer: isMenuLayer }"--> |
| | | <!-- ></div>--> |
| | | <!-- </div>--> |
| | | |
| | | </div> |
| | | <model-property ref='modelProperty'></model-property> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import $ from "jquery" |
| | | import mapMenuTop from "./MapView/mapMenuTop.vue" |
| | | |
| | | import mapSpaceTop from "./MapView/mapSpaceTop.vue" |
| | | |
| | | import $ from "jquery"; |
| | | import mapMenuTop from "./MapView/mapMenuTop.vue"; |
| | | import mapSpaceTop from "./MapView/mapSpaceTop.vue"; |
| | | import ModelProperty from '../views/Tools/ModelProperty.vue' |
| | | import { |
| | | select_Comprehensive_ByPageAndCount, |
| | | select_Comprehensive_SelectWktById, |
| | | comprehensive_selectRoute, |
| | | } from "../api/api" |
| | | dataLib_selectFiles, dataQuery_selectFields, dataQuery_selectDomains, dataQuery_selectByPage |
| | | } from '../api/api' |
| | | import { getToken } from '@/utils/auth' |
| | | |
| | | export default { |
| | | name: "", |
| | | components: { |
| | | mapMenuTop, |
| | | |
| | | mapSpaceTop, |
| | | ModelProperty |
| | | |
| | | }, |
| | | data() { |
| | | var validatePosition = (rule, value, callback) => { |
| | | if (value === "") { |
| | | callback(new Error("请输入密码")) |
| | | callback(new Error("请输入密码")); |
| | | } else { |
| | | if (value) { |
| | | let arr = value.split(",") |
| | | let arr = value.split(","); |
| | | if (arr.length !== 2) { |
| | | callback(new Error("坐标点经纬度格式错误!")) |
| | | callback(new Error("坐标点经纬度格式错误!")); |
| | | } else { |
| | | if (arr[0].startsWith("116") && arr[1].startsWith("39")) { |
| | | } else { |
| | | callback(new Error("坐标点纬度格式错误!")) |
| | | callback(new Error("坐标点纬度格式错误!")); |
| | | } |
| | | } |
| | | } |
| | | callback() |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | return { |
| | | centerFlag: false, |
| | | buffer: null, |
| | |
| | | lon: "", |
| | | lat: "", |
| | | }, |
| | | |
| | | rules: { |
| | | lon: [ |
| | | { required: true, message: "请输入起点经纬度坐标", trigger: "blur" }, |
| | |
| | | layer3: null, |
| | | isActive: false, |
| | | isMenuLayer: true, |
| | | selFrom: {}, |
| | | selectTree: null, |
| | | |
| | | showTerrainLevelDialog: false, |
| | | menuList: [], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, //树绑定对象 |
| | | } |
| | | show2DMap: false, |
| | | terrainFrom: { |
| | | height: '10' |
| | | }, |
| | | showLengendDialog: false, |
| | | showAttach: false, |
| | | attachList: [], |
| | | dialog: { |
| | | dialogVisible: false, |
| | | isPdf: false, |
| | | isJpg: false, |
| | | src: '' |
| | | }, |
| | | showAttribute: false, |
| | | attributeList: [], |
| | | valueZ: 0, |
| | | valueX: 0, |
| | | valueY: 0, |
| | | terrainflag: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.init3DMap() |
| | | this.$bus.$on("mapChangeBox", res => { |
| | | this.showChangeBox(res) |
| | | }) |
| | | this.init3DMap(); |
| | | this.$bus.$on("mapChangeBox", (res) => { |
| | | this.showChangeBox(res); |
| | | }); |
| | | this.$bus.$on('changemapType', (e) => { |
| | | this.show2DMap = e; |
| | | }); |
| | | this.$bus.$on('closeMenuPop', (e) => { |
| | | //非路径分析 |
| | | if (e != 'd3') { |
| | | this.showPathAnalysisBoxDialog = false; |
| | | } |
| | | //非坡度分析 |
| | | if (e != 'd2') { |
| | | this.showLengendDialog = false; |
| | | } |
| | | //非地形平整 |
| | | 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" |
| | | |
| | | catchmodel() { |
| | | var that = this; |
| | | window.pickedFeature; |
| | | window.pickedColor; |
| | | window.modeCatchHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | window.modeCatchHandler.setInputAction((event) => { |
| | | window.pickedFeature && (window.pickedFeature.color = window.pickedColor); |
| | | window.pickedFeature = sgworld.Viewer.scene.pick(event.position); |
| | | if (Cesium.defined(window.pickedFeature)) { |
| | | if (window.pickedFeature.primitive instanceof Cesium.Cesium3DTileset) { |
| | | if (window.pickedFeature && window.pickedFeature.getProperty) { |
| | | window.pickedColor = window.pickedFeature.color |
| | | window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3); |
| | | |
| | | // this.$store.state.catModel = true; |
| | | that.$store.state.catModelInfo = { |
| | | id: pickedFeature.getProperty("id"), |
| | | name: pickedFeature.getProperty("name"), |
| | | layerId: pickedFeature.primitive.layerId, |
| | | layerName: pickedFeature.primitive.id |
| | | }; |
| | | that.$refs && that.$refs.modelProperty && that.$refs.modelProperty.open(); |
| | | } |
| | | } |
| | | } |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK) |
| | | }, |
| | | drawTerrainLevel() { |
| | | this.clearTerrainLevel() |
| | | var deep = parseFloat(this.terrainFrom.height) |
| | | sgworld.Creator.createSimpleGraphic( |
| | | 'polygon', |
| | | { |
| | | clampToGround: true, |
| | | }, |
| | | function (entity) { |
| | | |
| | | var positions = entity.polygon.hierarchy.getValue().positions; |
| | | sgworld.Creator.SimpleGraphic.remove(entity.id); |
| | | |
| | | window.TerrainFlattening = sgworld.Creator.createTerrainModifier("地形压平", positions, deep, {}); |
| | | } |
| | | ); |
| | | }, |
| | | clearTerrainLevel() { |
| | | if (window.TerrainFlattening) { |
| | | window.TerrainFlattening && window.TerrainFlattening.remove(); |
| | | } |
| | | }, |
| | | 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 |
| | | licenseServer: window.sceneConfig.licenseServer, |
| | | }); |
| | | window.Viewer = window.sgworld._Viewer; |
| | | |
| | | //定位 |
| | | // 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( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[2].url, |
| | | }) |
| | | ) |
| | | // window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider( |
| | | // new Cesium.UrlTemplateImageryProvider({ |
| | | // url: gaoDeBaseUrl[1].url, |
| | | // }) |
| | | // ); |
| | | |
| | | // for (var i in gaoDeBaseUrl) { |
| | | // sgworld.Creator.createUrlTemplateImageryProvider( |
| | | // gaoDeBaseUrl[i].label, |
| | | // gaoDeBaseUrl[i].url, |
| | | // '0', |
| | | // undefined, |
| | | // true, |
| | | // '' |
| | | // ); |
| | | // } |
| | | |
| | | Viewer._enableInfoOrSelection = false |
| | | Viewer._enableInfoOrSelection = false; |
| | | //显示fps |
| | | Viewer.scene.debugShowFramesPerSecond = false |
| | | Viewer.scene.debugShowFramesPerSecond = false; |
| | | //导航控件 |
| | | window.sgworld.navControl("nav", false) |
| | | window.sgworld.navControl("nav", false); |
| | | //比例尺 |
| | | window.sgworld.navControl("scale", false) |
| | | window.sgworld.navControl("scale", false); |
| | | //开启深度检测 |
| | | // 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, ""); |
| | | requestVertexNormals: true, |
| | | }; |
| | | window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, ""); |
| | | |
| | | window.elevationTool = new SmartEarth.ElevationTool(window.sgworld) |
| | | elevationTool.setContourColor("#F1D487") |
| | | 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) { |
| | | // Viewer.imageryLayers._layers[1].show = true |
| | | // Viewer.imageryLayers._layers[2].show = false |
| | | Viewer.imageryLayers._layers[1].show = true |
| | | Viewer.imageryLayers._layers[2].show = false |
| | | // Viewer.imageryLayers._layers[3].show = false |
| | | |
| | | Viewer.imageryLayers.lower(this.layer2); |
| | | Viewer.imageryLayers.lower(this.layer3); |
| | | |
| | | // Viewer.imageryLayers.lower(this.layer2); |
| | | // Viewer.imageryLayers.lower(this.layer3); |
| | | } else { |
| | | // Viewer.imageryLayers.raise(this.layer3); |
| | | // Viewer.imageryLayers.raise(this.layer2); |
| | | |
| | | Viewer.imageryLayers.raise(this.layer3); |
| | | Viewer.imageryLayers.raise(this.layer2); |
| | | |
| | | // Viewer.imageryLayers._layers[1].show = false |
| | | // Viewer.imageryLayers._layers[2].show = true |
| | | Viewer.imageryLayers._layers[1].show = false |
| | | Viewer.imageryLayers._layers[2].show = true |
| | | // Viewer.imageryLayers._layers[3].show = true |
| | | } |
| | | }, |
| | |
| | | if (res.id == "6") { |
| | | } else if (res.id == "7") { |
| | | } else { |
| | | this.showBufferBoxDialog = true |
| | | this.showBufferBoxDialog = true; |
| | | } |
| | | } else if (res.name == "Coord") { |
| | | } |
| | | else if (res.name == "Coord") { |
| | | if (res.id == "1") { |
| | | this.showCoordLocalBoxDialog = true |
| | | this.showCoordLocalBoxDialog = true; |
| | | this.showToponymicLocalBoxDialog = false; |
| | | } else if (res.id == "2") { |
| | | this.showToponymicLocalBoxDialog = true |
| | | this.getToponymicData() |
| | | this.showToponymicLocalBoxDialog = true; |
| | | this.showCoordLocalBoxDialog = false; |
| | | this.getToponymicData(); |
| | | } |
| | | } else if (res.name == "Analysis") { |
| | | } |
| | | else if (res.name == "Analysis") { |
| | | if (res.id == "3") { |
| | | this.showPathAnalysisBoxDialog = true |
| | | if (res.show == true) { |
| | | this.showPathAnalysisBoxDialog = true; |
| | | } else { |
| | | this.showPathAnalysisBoxDialog = false; |
| | | this.closeBufferBox(4); |
| | | } |
| | | } |
| | | } |
| | | else if (res.name == "Trrain") { |
| | | switch (res.id) { |
| | | case "d10": |
| | | this.showTerrainLevelDialog = !this.showTerrainLevelDialog; |
| | | this.clearTerrainLevel(); |
| | | break; |
| | | } |
| | | } |
| | | else if (res.name == "Lengend") { |
| | | switch (res.id) { |
| | | case "d2": |
| | | this.showLengendDialog = res.vshow; |
| | | break; |
| | | } |
| | | } |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.listData.pageSize = val |
| | | this.getToponymicData() |
| | | this.listData.pageSize = val; |
| | | this.getToponymicData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.listData.pageIndex = val |
| | | this.getToponymicData() |
| | | this.listData.pageIndex = val; |
| | | this.getToponymicData(); |
| | | }, |
| | | setQueryTable() { |
| | | this.listData.pageSize = 10 |
| | | this.listData.pageIndex = 1 |
| | | this.getToponymicData() |
| | | this.listData.pageSize = 10; |
| | | this.listData.pageIndex = 1; |
| | | this.getToponymicData(); |
| | | }, |
| | | async getToponymicData() { |
| | | if (this.listData.tab == "") { |
| | | delete this.listData.tab |
| | | delete this.listData.tab; |
| | | } |
| | | this.listData.name = this.comprehensive.name |
| | | const data = await select_Comprehensive_ByPageAndCount(this.listData) |
| | | this.listData.name = this.comprehensive.name; |
| | | const data = await select_Comprehensive_ByPageAndCount(this.listData); |
| | | |
| | | if (data.code != 200) { |
| | | this.$message.error("列表调用失败") |
| | | this.$message.error("列表调用失败"); |
| | | } |
| | | this.tableData = data.result |
| | | this.count = data.count |
| | | this.tableData = data.result; |
| | | this.count = data.count; |
| | | }, |
| | | async handleLocation(index, row) { |
| | | const data = await select_Comprehensive_SelectWktById({ id: row.gid }) |
| | | const data = await select_Comprehensive_SelectWktById({ id: row.gid }); |
| | | if (data.code != 200) { |
| | | this.$message.error("列表调用失败") |
| | | this.$message.error("列表调用失败"); |
| | | } |
| | | var val = data.result.slice(6, data.result.length - 1) |
| | | val = val.split(" ") |
| | | var val = data.result.slice(6, data.result.length - 1); |
| | | val = val.split(" "); |
| | | var position = { |
| | | X: parseFloat(val[0]), |
| | | Y: parseFloat(val[1]), |
| | | Altitude: 2000, |
| | | } |
| | | }; |
| | | if (this.imagePoint != null) { |
| | | sgworld.Creator.DeleteObject(this.imagePoint) |
| | | this.imagePoint = null |
| | | sgworld.Creator.DeleteObject(this.imagePoint); |
| | | this.imagePoint = null; |
| | | } |
| | | this.imagePoint = sgworld.Creator.CreateLabel( |
| | | position, |
| | |
| | | }, |
| | | 0, |
| | | "巡检点" |
| | | ) |
| | | ); |
| | | |
| | | sgworld.Navigate.jumpTo({ |
| | | //跳转视角 |
| | |
| | | parseFloat(val[1]), |
| | | 10000 |
| | | ), |
| | | }) |
| | | }); |
| | | }, |
| | | closeBufferBox(res) { |
| | | switch (res) { |
| | | case 1: |
| | | this.showBufferBoxDialog = false |
| | | this.clearBuffer() |
| | | break |
| | | this.showBufferBoxDialog = false; |
| | | this.clearBuffer(); |
| | | break; |
| | | case 2: |
| | | this.showCoordLocalBoxDialog = false |
| | | break |
| | | this.showCoordLocalBoxDialog = false; |
| | | sgworld.Creator.DeleteObject(this.imagePoint); |
| | | break; |
| | | case 3: |
| | | this.showToponymicLocalBoxDialog = false |
| | | this.showToponymicLocalBoxDialog = false; |
| | | if (this.imagePoint != null) { |
| | | sgworld.Creator.DeleteObject(this.imagePoint) |
| | | this.imagePoint = null |
| | | sgworld.Creator.DeleteObject(this.imagePoint); |
| | | this.imagePoint = null; |
| | | } |
| | | break |
| | | break; |
| | | case 4: |
| | | this.showPathAnalysisBoxDialog = false |
| | | this.clearPathAll(3) |
| | | |
| | | break |
| | | this.showPathAnalysisBoxDialog = false; |
| | | this.clearPathAll(3); |
| | | break; |
| | | case 5: |
| | | this.showTerrainLevelDialog = false; |
| | | this.clearTerrainLevel() |
| | | break; |
| | | case 6: |
| | | this.$store.state.propertiesFlag = null; |
| | | this.showAttribute = false; |
| | | break; |
| | | } |
| | | }, |
| | | //定位 |
| | | setCoordLocal() { |
| | | var lon = parseFloat(this.coordFrom.lon) |
| | | var lat = parseFloat(this.coordFrom.lat) |
| | | var height = parseFloat(this.coordFrom.height) |
| | | var lon = parseFloat(this.coordFrom.lon); |
| | | var lat = parseFloat(this.coordFrom.lat); |
| | | var height = parseFloat(this.coordFrom.height); |
| | | var position = { |
| | | X: lon, |
| | | Y: lat, |
| | | Altitude: 2000, |
| | | }; |
| | | if (this.imagePoint != null) { |
| | | sgworld.Creator.DeleteObject(this.imagePoint); |
| | | this.imagePoint = null; |
| | | } |
| | | this.imagePoint = sgworld.Creator.CreateLabel( |
| | | position, |
| | | "", |
| | | SmartEarthRootUrl + "Workers/image/mark.png", |
| | | { |
| | | disableDepthTestDistance: Infinity, |
| | | scale: 0.8, |
| | | }, |
| | | 0, |
| | | "巡检点" |
| | | ); |
| | | |
| | | sgworld.Navigate.jumpTo({ |
| | | //跳转视角 |
| | | destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height), |
| | | }) |
| | | destination: new Cesium.Cartesian3.fromDegrees( |
| | | lon, |
| | | lat, |
| | | height |
| | | ), |
| | | }); |
| | | // sgworld.Navigate.jumpTo({ |
| | | // //跳转视角 |
| | | // destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height), |
| | | // }); |
| | | }, |
| | | //缓冲区分析 |
| | | clearBuffer() { |
| | | if (this.buffer == null) return |
| | | this.buffer && this.buffer.clearBuff() |
| | | this.buffer = null |
| | | if (this.buffer == null) return; |
| | | this.buffer && this.buffer.clearBuff(); |
| | | this.buffer = null; |
| | | }, |
| | | getBufferTable(type) { |
| | | const points = |
| | | this.buffer.this_buff.buff.polygon.hierarchy.getValue().positions |
| | | let geometrys = "" |
| | | let firstPoint |
| | | let degrees = "" |
| | | this.buffer.this_buff.buff.polygon.hierarchy.getValue().positions; |
| | | let geometrys = ""; |
| | | let firstPoint; |
| | | let degrees = ""; |
| | | points.forEach((p, i) => { |
| | | degrees = window.sgworld.Core.toDegrees(p) |
| | | geometrys += "[" + degrees.lon + "," + degrees.lat + "]," |
| | | i === 0 && (firstPoint = "[" + degrees.lon + "," + degrees.lat + "]") |
| | | }) |
| | | geometrys += firstPoint |
| | | if (geometrys.length != 0) geometrys.trimEnd(",") |
| | | geometrys = "{rings:[[" + geometrys + "]]}" |
| | | degrees = window.sgworld.Core.toDegrees(p); |
| | | geometrys += "[" + degrees.lon + "," + degrees.lat + "],"; |
| | | i === 0 && (firstPoint = "[" + degrees.lon + "," + degrees.lat + "]"); |
| | | }); |
| | | geometrys += firstPoint; |
| | | if (geometrys.length != 0) geometrys.trimEnd(","); |
| | | geometrys = "{rings:[[" + geometrys + "]]}"; |
| | | }, |
| | | addBuffer(res) { |
| | | this.clearBuffer() |
| | | var buffRadius = this.bufFrom.val |
| | | this.clearBuffer(); |
| | | var buffRadius = this.bufFrom.val; |
| | | switch (res) { |
| | | case 1: |
| | | this.buffer = sgworld.Analysis.DrawPointBuffer(buffRadius, event => { |
| | | this.getBufferTable("point") |
| | | }) |
| | | break |
| | | this.buffer = sgworld.Analysis.DrawPointBuffer( |
| | | buffRadius, |
| | | (event) => { |
| | | this.getBufferTable("point"); |
| | | } |
| | | ); |
| | | break; |
| | | case 2: |
| | | this.buffer = sgworld.Analysis.DrawPolylineBuffer( |
| | | buffRadius, |
| | | event => { |
| | | this.getBufferTable("line") |
| | | (event) => { |
| | | this.getBufferTable("line"); |
| | | } |
| | | ) |
| | | break |
| | | ); |
| | | break; |
| | | case 3: |
| | | this.buffer = sgworld.Analysis.DrawPolygonBuffer( |
| | | buffRadius, |
| | | event => { |
| | | this.getBufferTable("polygon") |
| | | (event) => { |
| | | this.getBufferTable("polygon"); |
| | | } |
| | | ) |
| | | break |
| | | ); |
| | | break; |
| | | } |
| | | }, |
| | | async showMouseLeftClick(res) { |
| | | if (res == 3) { |
| | | this.$refs.form.validate(valid => { |
| | | if (!valid) { |
| | | return false |
| | | this.$refs.form.validate(async (valid) => { |
| | | if (valid) { |
| | | this.clearPathAll(5); |
| | | var start = this.pathFrom.lon.split(","); |
| | | var end = this.pathFrom.lat.split(","); |
| | | var startData = { |
| | | x1: parseFloat(start[0]), |
| | | y1: parseFloat(start[1]), |
| | | x2: parseFloat(end[0]), |
| | | y2: parseFloat(end[1]), |
| | | }; |
| | | const data = await comprehensive_selectRoute(startData); |
| | | if (data.code != 200) { |
| | | return this.$message.error("数据请求失败"); |
| | | } |
| | | if (!data.result) { |
| | | return this.$message.error("暂无数据"); |
| | | } |
| | | var wkt = this.$wkt.parse(data.result); |
| | | var bufferSource = Cesium.GeoJsonDataSource.load(wkt, { |
| | | stroke: new Cesium.Color(82 / 255, 152 / 255, 255 / 255, 1), |
| | | strokeWidth: 5, |
| | | clampToGround: true, |
| | | }); |
| | | bufferSource.then((bufferSource) => { |
| | | sgworld.Navigate.flyToObj(bufferSource); |
| | | Viewer.dataSources.add(bufferSource); |
| | | }); |
| | | } |
| | | }) |
| | | this.clearPathAll(3) |
| | | var start = this.pathFrom.lon.split(",") |
| | | var end = this.pathFrom.lat.split(",") |
| | | var startData = { |
| | | x1: parseFloat(start[0]), |
| | | y1: parseFloat(start[1]), |
| | | x2: parseFloat(end[0]), |
| | | y2: parseFloat(end[1]), |
| | | } |
| | | |
| | | const data = await comprehensive_selectRoute(startData) |
| | | if (data.code != 200) { |
| | | return this.$message.error("数据请求失败") |
| | | } |
| | | var wkt = this.$wkt.parse(data.result) |
| | | var bufferSource = Cesium.GeoJsonDataSource.load(wkt, { |
| | | stroke: new Cesium.Color(82 / 255, 152 / 255, 255 / 255, 1), |
| | | |
| | | strokeWidth: 5, |
| | | clampToGround: true, |
| | | }) |
| | | bufferSource.then(bufferSource => { |
| | | sgworld.Navigate.flyToObj(bufferSource) |
| | | Viewer.dataSources.add(bufferSource) |
| | | }) |
| | | }); |
| | | // this.clearPathAll(3); |
| | | // var start = this.pathFrom.lon.split(","); |
| | | // var end = this.pathFrom.lat.split(","); |
| | | // var startData = { |
| | | // x1: parseFloat(start[0]), |
| | | // y1: parseFloat(start[1]), |
| | | // x2: parseFloat(end[0]), |
| | | // y2: parseFloat(end[1]), |
| | | // }; |
| | | // |
| | | // const data = await comprehensive_selectRoute(startData); |
| | | // if (data.code != 200) { |
| | | // return this.$message.error("数据请求失败"); |
| | | // } |
| | | // if (!data.result) { |
| | | // return this.$message.error("暂无数据"); |
| | | // } |
| | | // var wkt = this.$wkt.parse(data.result); |
| | | // var bufferSource = Cesium.GeoJsonDataSource.load(wkt, { |
| | | // stroke: new Cesium.Color(82 / 255, 152 / 255, 255 / 255, 1), |
| | | // |
| | | // strokeWidth: 5, |
| | | // clampToGround: true, |
| | | // }); |
| | | // bufferSource.then((bufferSource) => { |
| | | // sgworld.Navigate.flyToObj(bufferSource); |
| | | // Viewer.dataSources.add(bufferSource); |
| | | // }); |
| | | // var jsonurl = |
| | | // wnsUrl + |
| | | // '?start=' + |
| | |
| | | // }, |
| | | // }); |
| | | } else { |
| | | var that = this |
| | | var that = this; |
| | | if (this.handler != null) { |
| | | this.clearLeftClick() |
| | | this.clearLeftClick(); |
| | | } |
| | | this.handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas) |
| | | this.handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | this.handler.setInputAction(function (event) { |
| | | let cartesian = Viewer.camera.pickEllipsoid(event.position) |
| | | let cartographic = Cesium.Cartographic.fromCartesian(cartesian) |
| | | let cartesian = Viewer.camera.pickEllipsoid(event.position); |
| | | let cartographic = Cesium.Cartographic.fromCartesian(cartesian); |
| | | let lng = parseFloat( |
| | | Cesium.Math.toDegrees(cartographic.longitude) |
| | | ).toFixed(6) // 经度 |
| | | ).toFixed(6); // 经度 |
| | | let lat = parseFloat( |
| | | Cesium.Math.toDegrees(cartographic.latitude) |
| | | ).toFixed(6) // 纬度 |
| | | ).toFixed(6); // 纬度 |
| | | if (that.linePath != null) { |
| | | that.clearPathAll(3) |
| | | that.clearPathAll(3); |
| | | } |
| | | if (lng != null && lat != null) { |
| | | let val = lng + "," + lat |
| | | var position = sgworld.Creator.CreatePosition(lng, lat, 0) |
| | | let val = lng + "," + lat; |
| | | var position = sgworld.Creator.CreatePosition(lng, lat, 0); |
| | | if (res == 1) { |
| | | if (that.pathStart != null) { |
| | | that.clearPathAll(1) |
| | | that.clearPathAll(1); |
| | | } |
| | | |
| | | that.pathStart = sgworld.Creator.CreateLabel( |
| | |
| | | }, |
| | | 0, |
| | | "起始点" |
| | | ) |
| | | ); |
| | | |
| | | that.pathFrom.lon = val |
| | | that.pathFrom.lon = val; |
| | | } else if (res == 2) { |
| | | if (that.pathEnd != null) { |
| | | that.clearPathAll(2) |
| | | that.clearPathAll(2); |
| | | } |
| | | |
| | | that.pathEnd = sgworld.Creator.CreateLabel( |
| | |
| | | }, |
| | | 0, |
| | | "结束点" |
| | | ) |
| | | that.pathFrom.lat = val |
| | | ); |
| | | that.pathFrom.lat = val; |
| | | } |
| | | that.clearLeftClick() |
| | | that.clearLeftClick(); |
| | | } |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK) |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | } |
| | | }, |
| | | clearPathAll(res) { |
| | | switch (res) { |
| | | case 1: |
| | | if (this.pathStart != null) { |
| | | sgworld.Creator.DeleteObject(this.pathStart) |
| | | this.pathStart = null |
| | | sgworld.Creator.DeleteObject(this.pathStart); |
| | | this.pathStart = null; |
| | | } |
| | | break |
| | | break; |
| | | case 2: |
| | | if (this.pathEnd != null) { |
| | | sgworld.Creator.DeleteObject(this.pathEnd) |
| | | this.pathEnd = null |
| | | sgworld.Creator.DeleteObject(this.pathEnd); |
| | | this.pathEnd = null; |
| | | } |
| | | break |
| | | break; |
| | | case 3: |
| | | if (this.pathStart != null) { |
| | | sgworld.Creator.DeleteObject(this.pathStart) |
| | | this.pathStart = null |
| | | sgworld.Creator.DeleteObject(this.pathStart); |
| | | this.pathStart = null; |
| | | } |
| | | |
| | | if (this.pathEnd != null) { |
| | | sgworld.Creator.DeleteObject(this.pathEnd) |
| | | this.pathEnd = null |
| | | sgworld.Creator.DeleteObject(this.pathEnd); |
| | | this.pathEnd = null; |
| | | } |
| | | if (this.linePath != null) { |
| | | sgworld.Creator.DeleteObject(this.linePath) |
| | | this.linePath = null |
| | | sgworld.Creator.DeleteObject(this.linePath); |
| | | this.linePath = null; |
| | | } |
| | | |
| | | Viewer.dataSources.removeAll() |
| | | break |
| | | Viewer.dataSources.removeAll(); |
| | | break; |
| | | case 4: |
| | | if (this.linePath != null) { |
| | | sgworld.Creator.DeleteObject(this.linePath) |
| | | this.linePath = null |
| | | sgworld.Creator.DeleteObject(this.linePath); |
| | | this.linePath = null; |
| | | } |
| | | break |
| | | case 5: |
| | | if (this.linePath != null) { |
| | | sgworld.Creator.DeleteObject(this.linePath); |
| | | this.linePath = null; |
| | | } |
| | | |
| | | Viewer.dataSources.removeAll(); |
| | | break; |
| | | } |
| | | }, |
| | | clearLeftClick() { |
| | | this.handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK) //移除事件 |
| | | this.handler = null |
| | | this.handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //移除事件 |
| | | this.handler = null; |
| | | }, |
| | | executeFly3D(res) { |
| | | var position = [] |
| | | var position = []; |
| | | if (res) { |
| | | var positionA = res.features |
| | | var positionA = res.features; |
| | | if (positionA.length > 0) { |
| | | for (var i = 0; i < positionA.length; i++) { |
| | | var val = positionA[i] |
| | | var val = positionA[i]; |
| | | if (val.geometry.type == "LineString") { |
| | | var val_data = val.geometry.coordinates |
| | | var val_data = val.geometry.coordinates; |
| | | for (var j = 0; j < val_data.length; j++) { |
| | | position.push({ x: val_data[j][0], y: val_data[j][1] }) |
| | | position.push({ x: val_data[j][0], y: val_data[j][1] }); |
| | | } |
| | | } |
| | | } |
| | |
| | | 1, |
| | | 0, |
| | | "线" |
| | | ) |
| | | sgworld.Navigate.flyToObj(this.linePath) |
| | | ); |
| | | sgworld.Navigate.flyToObj(this.linePath); |
| | | } else { |
| | | return |
| | | return; |
| | | } |
| | | } |
| | | }, |
| | | //二维/三维地图切换 |
| | | changeMapType() { |
| | | // |
| | | this.show2DMap = !this.show2DMap; |
| | | //二维 |
| | | if (this.show2DMap) { |
| | | this.$bus.$emit("changemap", 2); |
| | | } |
| | | //三维 |
| | | else { |
| | | this.$bus.$emit("changemap", 3); |
| | | } |
| | | this.$bus.$emit("changemapType", this.show2DMap); |
| | | }, |
| | | //获取附件列表 |
| | | async getAttatchList() { |
| | | if (this.$store.state.propertiesName == null) { |
| | | return |
| | | } |
| | | |
| | | let tabName = this.$store.state.propertiesName.ns + '.' + this.$store.state.propertiesName.enName; |
| | | let eventid = this.$store.state.propertiesInfo.eventid; |
| | | |
| | | var obj = { |
| | | eventid: eventid, |
| | | tabName: tabName, |
| | | }; |
| | | const res = await dataLib_selectFiles(obj); |
| | | |
| | | if (res.code != 200) { |
| | | this.$message.error('附件查询失败'); |
| | | return |
| | | } |
| | | if (res.result.length <= 0) { |
| | | this.$message.error('暂无附件'); |
| | | return |
| | | } |
| | | |
| | | this.attachList = res.result; |
| | | this.showAttach = true; |
| | | }, |
| | | //是否显示查看按钮 |
| | | showAttachDetailBtn(row) { |
| | | var name = row.name; |
| | | if (name.indexOf('.pdf') != -1 || name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) { |
| | | return true; |
| | | } |
| | | return false; |
| | | }, |
| | | //数据初始化 |
| | | refreshAttatchDetail() { |
| | | this.dialog.src = ""; |
| | | this.dialog.dialogVisible = false; |
| | | this.dialog.isPdf = false; |
| | | this.dialog.isJpg = false; |
| | | }, |
| | | //查看附件 |
| | | showAttachDetail(row) { |
| | | this.refreshAttatchDetail(); |
| | | var name = row.name; |
| | | if (name.indexOf('.pdf') != -1) { |
| | | this.dialog.dialogVisible = true; |
| | | this.dialog.isPdf = true; |
| | | var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken(); |
| | | this.dialog.src = url |
| | | } |
| | | else if (name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) { |
| | | this.dialog.dialogVisible = true; |
| | | this.dialog.isJpg = true; |
| | | var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken(); |
| | | this.dialog.src = url |
| | | } |
| | | }, |
| | | //格式化时间 |
| | | format(shijianchuo) { |
| | | //shijianchuo是整数,否则要parseInt转换 |
| | | var time = new Date(shijianchuo); |
| | | var y = time.getFullYear(); |
| | | var m = time.getMonth() + 1; |
| | | var d = time.getDate(); |
| | | var h = time.getHours(); |
| | | var mm = time.getMinutes(); |
| | | var s = time.getSeconds(); |
| | | return ( |
| | | y + |
| | | '-' + |
| | | this.add0(m) + |
| | | '-' + |
| | | this.add0(d) + |
| | | ' ' + |
| | | h + |
| | | ':' + |
| | | mm + |
| | | ':' + |
| | | s |
| | | ); |
| | | }, |
| | | //格式化时间 |
| | | add0(m) { |
| | | return m < 10 ? '0' + m : m; |
| | | }, |
| | | //勘察信息表 |
| | | getPointInfo() { |
| | | |
| | | if (this.showAttribute) { |
| | | |
| | | } |
| | | let attrbuteOption = workSite; |
| | | var name = attrbuteOption[0].table.replaceAll("_", ""); |
| | | this.getAttributeDomFiled(name); |
| | | }, |
| | | //获取每个表字段名称及阈值 |
| | | async getAttributeDomFiled(res) { |
| | | //查询字段信息; |
| | | const fileds = await dataQuery_selectFields({ |
| | | name: res, |
| | | }); |
| | | if (fileds.code != 200) { |
| | | this.$message.error("调用列表失败,请联系工作人员!"); |
| | | return; |
| | | } |
| | | //查询阈值信息; |
| | | const domains = await dataQuery_selectDomains({ |
| | | name: res, |
| | | }); |
| | | if (domains.code != 200) { |
| | | this.$message.error("调用列表失败,请联系工作人员!"); |
| | | return; |
| | | } |
| | | var data1 = fileds.result; |
| | | var data2 = domains.result; |
| | | var std = []; |
| | | this.filedsOption = []; |
| | | for (var i in data1) { |
| | | if (data1[i].type != 'geometry' && data1[i].type) { |
| | | this.filedsOption.push(data1[i]); |
| | | } |
| | | if (data1[i].showtype == 1) { |
| | | if (data1[i].domainNa != null) { |
| | | data1[i].domainNa = this.getDomainNaFild(data1[i].domainNa, data2); |
| | | } |
| | | std.push(data1[i]); |
| | | } |
| | | } |
| | | this.getAttributeTableData(std, res, this.$store.state.propertiesInfo.工点名称, data1) |
| | | }, |
| | | //获取表格信息 |
| | | async getAttributeTableData(res, name, title, list) { |
| | | let attributeFild = res; |
| | | let parmams = { |
| | | 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]; |
| | | for (var j in res_val) { |
| | | if (res_val[j].domainNa != null && res_val[j].domainNa != undefined) { |
| | | val_Data[res_val[j].field] = res_val[j].domainNa; |
| | | } |
| | | } |
| | | } |
| | | 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) { |
| | | 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 |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .mapBox { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | position: relative; |
| | | #mapdiv { |
| | | width: 100%; |
| | |
| | | overflow: hidden; |
| | | position: relative; |
| | | .toponymicLocalBox { |
| | | width: 750px; |
| | | width: 350px; |
| | | //width: 750px; |
| | | height: 450x; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 1%; |
| | | right: 8%; |
| | | bottom: 1%; |
| | | } |
| | | .bufferBox { |
| | |
| | | height: 230px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 1%; |
| | | right: 6%; |
| | | bottom: 1%; |
| | | } |
| | | .coordLocalBox { |
| | |
| | | height: 370px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 1%; |
| | | right: 8%; |
| | | bottom: 1%; |
| | | } |
| | | .propertiesPop { |
| | | width: 350px; |
| | | height: 370px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 8%; |
| | | bottom: 1%; |
| | | /deep/ .el-card__header { |
| | | padding: 10px 20px; |
| | | } |
| | | /deep/ .el-card__body { |
| | | padding: 10px 20px; |
| | | } |
| | | } |
| | | .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; |
| | | position: absolute; |
| | | right: 1%; |
| | | right: 8%; |
| | | bottom: 1%; |
| | | } |
| | | .attributionPop { |
| | | width: 350px; |
| | | height: 370px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 38%; |
| | | bottom: 1%; |
| | | /deep/ .el-card__header { |
| | | padding: 10px 20px; |
| | | } |
| | | /deep/ .el-card__body { |
| | | padding: 10px 20px; |
| | | } |
| | | } |
| | | .terrainLevelBox { |
| | | width: 350px; |
| | | height: 370px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 8%; |
| | | bottom: -11%; |
| | | } |
| | | |
| | | .box-card { |
| | |
| | | border: 1px solid rgba(32, 160, 255, 0.6); |
| | | } |
| | | .menu_Top { |
| | | opacity: 0.85; |
| | | width: 100%; |
| | | padding: 1%; |
| | | position: absolute; |
| | |
| | | bottom: 5%; |
| | | position: absolute; |
| | | z-index: 40; |
| | | } |
| | | .HistLeng { |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 115px; |
| | | bottom: 10px; |
| | | } |
| | | .lengend { |
| | | width: 300px; |
| | | z-index: 40; |
| | | position: absolute; |
| | | right: 1%; |
| | | bottom: 13%; |
| | | transform: rotate(90deg); |
| | | .lengendBox { |
| | | .lengendSpan { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-top: 10px; |
| | | div { |
| | | transform: rotate(-90deg); |
| | | } |
| | | } |
| | | .lengendImg { |
| | | -ms-transform: rotate(180deg); /* IE 9 */ |
| | | -webkit-transform: rotate(180deg); /* Safari and Chrome */ |
| | | transform: rotate(180deg); |
| | | width: 100%; |
| | | height: 30px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | .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/basemap.png"); |
| | | //background-image: url("../assets/img/synthesis/底图.png"); |
| | | background-repeat: no-repeat; |
| | | background-size: contain; |
| | | } |
| | | //.changeMapType { |
| | | // position: absolute; |
| | | // bottom: 1%; |
| | | // left: calc(1% + 150px); |
| | | // height: 40px; |
| | | // width: 60px; |
| | | // z-index: 101; |
| | | // display: flex; |
| | | // justify-content: center; |
| | | // align-items: center; |
| | | // // box-shadow: 3px 3px 6px #666; |
| | | // //border: 1px solid rgba(204, 204, 204, 0.76); |
| | | // border-radius: 5px; |
| | | // |
| | | // cursor: pointer; |
| | | //} |
| | | .changeTerrain { |
| | | 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); |
| | | } |
| | | .changeLayer { |
| | | 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); |
| | | } |
| | | .changeMapType { |
| | | 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); |
| | | } |
| | | //.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%; |
| | | margin-left: 10px; |
| | | background-image: url("../assets/img/3D.png"); |
| | | //background-image: url("../assets/img/synthesis/3D.png"); |
| | | background-repeat: no-repeat; |
| | | |
| | | //background-size: contain; |
| | | } |
| | | .mapTerrain { |
| | | width: 100%; |
| | | height: 100%; |
| | | //margin-left: 10px; |
| | | //background-image: url("../assets/img/synthesis/地形.png"); |
| | | //background-image: url("../assets/img/synthesis/地形.png"); |
| | | background-image: url("../assets/img/terrain.png"); |
| | | background-repeat: no-repeat; |
| | | //background-size: contain; |
| | | } |
| | | .mapTypeThree { |
| | | width: 100%; |
| | | height: 100%; |
| | | //margin-left: 10px; |
| | | background-image: url("../assets/img/2D.png"); |
| | | background-repeat: no-repeat; |
| | | //background-size: contain; |
| | | } |
| | | |
| | | .pdfClass { |
| | | height: 70vh; |
| | | width: 100%; |
| | | position: relative; |
| | | } |
| | | |
| | | // .menuSelect .el-input__inner { |
| | | // background: rgba(255, 255, 255, 0.2) !important; |
| | | // color: white !important; |