| | |
| | | <template> |
| | | <div class="mapBox"> |
| | | <div id="mapdiv"> |
| | | <div class="menu_Top" v-if="$store.state.mapMenuBoolean"> |
| | | <div |
| | | class="menu_Top" |
| | | v-if="$store.state.mapMenuBoolean" |
| | | > |
| | | <map-menu-top v-if="$store.state.mapMenuBoxFlag == '1'" /> |
| | | <map-space-top v-if="$store.state.mapMenuBoxFlag == '2'" /> |
| | | </div> |
| | | <div class="menu_Popup" v-if="$store.state.mapPopBoolean"> |
| | | <map-menu-pop v-if="$store.state.mapPopBoxFlag == '1'" /> |
| | | <map-space-pop v-if="$store.state.mapPopBoxFlag == '2'" /> |
| | | </div> |
| | | <div class="bufferBox" v-if="showBufferBoxDialog"> |
| | | |
| | | <div |
| | | class="bufferBox" |
| | | v-if="showBufferBoxDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <div |
| | | slot="header" |
| | | class="clearfix" |
| | | > |
| | | <span>缓冲区分析</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i class="el-icon-close" @click="closeBufferBox(1)"></i> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(1)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div class="box-body"> |
| | | <el-form ref="form" :model="bufFrom" label-width="100px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="bufFrom" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="缓冲半径(米):"> |
| | | <el-input v-model="bufFrom.val"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="addBuffer(1)" type="info">点</el-button> |
| | | <el-button @click="addBuffer(2)" type="info">线</el-button> |
| | | <el-button @click="addBuffer(3)" type="info">面</el-button> |
| | | <el-button @click="clearBuffer" type="info">清除</el-button> |
| | | <el-button |
| | | @click="addBuffer(1)" |
| | | type="info" |
| | | >点</el-button> |
| | | <el-button |
| | | @click="addBuffer(2)" |
| | | type="info" |
| | | >线</el-button> |
| | | <el-button |
| | | @click="addBuffer(3)" |
| | | type="info" |
| | | >面</el-button> |
| | | <el-button |
| | | @click="clearBuffer" |
| | | type="info" |
| | | >清除</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div class="coordLocalBox" v-if="showCoordLocalBoxDialog"> |
| | | <div |
| | | class="coordLocalBox" |
| | | v-if="showCoordLocalBoxDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <div |
| | | slot="header" |
| | | class="clearfix" |
| | | > |
| | | <span>坐标定位</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i class="el-icon-close" @click="closeBufferBox(2)"></i> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(2)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div class="box-body"> |
| | | <el-form ref="form" :model="coordFrom" label-width="50px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="coordFrom" |
| | | label-width="50px" |
| | | > |
| | | <el-form-item label="经度:"> |
| | | <el-input v-model="coordFrom.lon"></el-input> |
| | | </el-form-item> |
| | |
| | | <el-input v-model="coordFrom.height"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="setCoordLocal" type="info">定位</el-button> |
| | | <el-button |
| | | @click="setCoordLocal" |
| | | type="info" |
| | | >定位</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div class="toponymicLocalBox" v-if="showToponymicLocalBoxDialog"> |
| | | <div |
| | | class="toponymicLocalBox" |
| | | v-if="showToponymicLocalBoxDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <div |
| | | slot="header" |
| | | class="clearfix" |
| | | > |
| | | <span>地名定位</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i class="el-icon-close" @click="closeBufferBox(3)"></i> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(3)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div class="box-body"> |
| | | <el-form :model="comprehensive" :inline="true" label-width="50px"> |
| | | <el-form |
| | | :model="comprehensive" |
| | | :inline="true" |
| | | label-width="50px" |
| | | > |
| | | <el-form-item label="地名:"> |
| | | <el-input |
| | | style="width: 200px" |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="setQueryTable" type="info">查询</el-button> |
| | | <el-button |
| | | @click="setQueryTable" |
| | | type="info" |
| | | >查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table :data="tableData" height="200px" style="width: 100%"> |
| | | <el-table |
| | | :data="tableData" |
| | | height="200px" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | type="index" |
| | | label="序号" |
| | | width="70px" |
| | | /> |
| | | <el-table-column prop="name" align="center" label="定位"> |
| | | <el-table-column |
| | | prop="name" |
| | | align="center" |
| | | label="定位" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="handleLocation(scope.$index, scope.row)" |
| | |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" align="center" label="地名"> |
| | | <el-table-column |
| | | prop="name" |
| | | align="center" |
| | | label="地名" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 10px" class="pagination_box"> |
| | | <div |
| | | style="margin-top: 10px" |
| | | class="pagination_box" |
| | | > |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <div class="pathAnalysisBox" v-if="showPathAnalysisBoxDialog"> |
| | | <div |
| | | class="pathAnalysisBox" |
| | | v-if="showPathAnalysisBoxDialog" |
| | | > |
| | | <el-card class="box-card"> |
| | | <div slot="header" class="clearfix"> |
| | | <div |
| | | slot="header" |
| | | class="clearfix" |
| | | > |
| | | <span>路径分析</span> |
| | | <div style="float: right; cursor: pointer"> |
| | | <i class="el-icon-close" @click="closeBufferBox(4)"></i> |
| | | <i |
| | | class="el-icon-close" |
| | | @click="closeBufferBox(4)" |
| | | ></i> |
| | | </div> |
| | | </div> |
| | | <div class="box-body"> |
| | | <el-form ref="form" :model="pathFrom" label-width="50px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="pathFrom" |
| | | label-width="50px" |
| | | > |
| | | <el-form-item label="起点:"> |
| | | <el-input |
| | | style="width: 250px" |
| | |
| | | :underline="false" |
| | | @click="showMouseLeftClick(1)" |
| | | style="margin-left: 10px" |
| | | ><i style="color: white" class="el-icon-plus"></i |
| | | ></el-link> |
| | | ><i |
| | | style="color: white" |
| | | class="el-icon-plus" |
| | | ></i></el-link> |
| | | </el-form-item> |
| | | <el-form-item label="终点:"> |
| | | <el-input |
| | |
| | | :underline="false" |
| | | @click="showMouseLeftClick(2)" |
| | | style="margin-left: 10px" |
| | | ><i style="color: white" class="el-icon-plus"></i |
| | | ></el-link> |
| | | ><i |
| | | style="color: white" |
| | | class="el-icon-plus" |
| | | ></i></el-link> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="showMouseLeftClick(3)" type="info" |
| | | >查询</el-button |
| | | > |
| | | <el-button |
| | | @click="showMouseLeftClick(3)" |
| | | type="info" |
| | | >查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | <script> |
| | | import $ from 'jquery'; |
| | | import mapMenuTop from './MapView/mapMenuTop.vue'; |
| | | import mapMenuPop from './MapView/mapMenuPop.vue'; |
| | | |
| | | import mapSpaceTop from './MapView/mapSpaceTop.vue'; |
| | | import mapSpacePop from './MapView/mapSpacePop.vue'; |
| | | |
| | | import { |
| | | select_Comprehensive_ByPageAndCount, |
| | | select_Comprehensive_SelectWktById, |
| | | comprehensive_selectRoute |
| | | } from '../api/api'; |
| | | export default { |
| | | name: '', |
| | | components: { |
| | | mapMenuTop, |
| | | mapMenuPop, |
| | | |
| | | mapSpaceTop, |
| | | mapSpacePop, |
| | | |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | 100000 |
| | | ), |
| | | }); |
| | | // Viewer.imageryLayers.addImageryProvider( |
| | | // new Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: 'http://t0.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=94a34772eb88317fcbf8428e10448561', |
| | | // layer: 'tdtVecBasicLayer', |
| | | // style: 'default', |
| | | // format: 'image/jpeg', |
| | | // tileMatrixSetID: 'GoogleMapsCompatible', |
| | | // show: false, |
| | | // }) |
| | | // ); |
| | | Viewer.imageryLayers.addImageryProvider( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[0].url, |
| | | |
| | | // Viewer.imageryLayers.addImageryProvider( |
| | | // new Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: 'http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=94a34772eb88317fcbf8428e10448561', |
| | | // layer: 'tdtBasicLayer', |
| | | // style: 'default', |
| | | // format: 'image/jpeg', |
| | | // tileMatrixSetID: 'GoogleMapsCompatible', |
| | | // show: false, |
| | | // }) |
| | | // ); |
| | | // Viewer.imageryLayers.addImageryProvider( |
| | | // new Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: 'http://t0.tianditu.com/cva_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=94a34772eb88317fcbf8428e10448561', |
| | | // layer: 'tdtAnnoLayer', |
| | | // style: 'default', |
| | | // format: 'image/jpeg', |
| | | // tileMatrixSetID: 'GoogleMapsCompatible', |
| | | // }) |
| | | // ); |
| | | |
| | | for (var i in gaoDeBaseUrl) { |
| | | sgworld.Creator.createUrlTemplateImageryProvider( |
| | | gaoDeBaseUrl[i].label, |
| | | gaoDeBaseUrl[i].url, |
| | | '0', |
| | | undefined, |
| | | true, |
| | | '' |
| | | ); |
| | | } |
| | | }) |
| | | ); |
| | | |
| | | Viewer.imageryLayers.addImageryProvider( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[1].url, |
| | | |
| | | }) |
| | | ); |
| | | Viewer.imageryLayers.addImageryProvider( |
| | | new Cesium.UrlTemplateImageryProvider({ |
| | | url: gaoDeBaseUrl[2].url, |
| | | |
| | | |
| | | }) |
| | | ); |
| | | |
| | | // for (var i in gaoDeBaseUrl) { |
| | | // sgworld.Creator.createUrlTemplateImageryProvider( |
| | | // gaoDeBaseUrl[i].label, |
| | | // gaoDeBaseUrl[i].url, |
| | | // '0', |
| | | // undefined, |
| | | // true, |
| | | // '' |
| | | // ); |
| | | // } |
| | | |
| | | Viewer._enableInfoOrSelection = false; |
| | | //显示fps |
| | |
| | | // '' |
| | | // ); |
| | | // openStreetMap.item.show = false; |
| | | //mpt加载 |
| | | var option = { |
| | | url: window.sceneConfig.mpt.url, |
| | | layerName: window.sceneConfig.mpt.name, |
| | | requestVertexNormals: true, |
| | | }; |
| | | sgworld.Creator.sfsterrainprovider('mpt', option, '', true, ''); |
| | | |
| | | 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.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; |
| | | // }); |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | changeMenulayer() { |
| | |
| | | break; |
| | | } |
| | | }, |
| | | showMouseLeftClick(res) { |
| | | async showMouseLeftClick(res) { |
| | | if (res == 3) { |
| | | if (this.linePath != null) { |
| | | 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]) |
| | | } |
| | | |
| | | var jsonurl = |
| | | wnsUrl + |
| | | '?start=' + |
| | | this.pathFrom.lon + |
| | | '&end=' + |
| | | this.pathFrom.lat + |
| | | '&propertyName=Shape&tolerance=500&request=FindPath&format=json'; |
| | | $.ajax({ |
| | | url: jsonurl, |
| | | async: false, |
| | | type: 'GET', |
| | | dataType: 'json', |
| | | contentType: 'application/json;charset=utf-8', |
| | | success: (data) => { |
| | | this.executeFly3D(data); |
| | | }, |
| | | }); |
| | | 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); |
| | | |
| | | } |
| | | ) |
| | | // var jsonurl = |
| | | // wnsUrl + |
| | | // '?start=' + |
| | | // this.pathFrom.lon + |
| | | // '&end=' + |
| | | // this.pathFrom.lat + |
| | | // '&propertyName=Shape&tolerance=500&request=FindPath&format=json'; |
| | | // $.ajax({ |
| | | // url: jsonurl, |
| | | // async: false, |
| | | // type: 'GET', |
| | | // dataType: 'json', |
| | | // contentType: 'application/json;charset=utf-8', |
| | | // success: (data) => { |
| | | // this.executeFly3D(data); |
| | | // }, |
| | | // }); |
| | | } else { |
| | | var that = this; |
| | | if (this.handler != null) { |
| | |
| | | sgworld.Creator.DeleteObject(this.linePath); |
| | | this.linePath = null; |
| | | } |
| | | |
| | | Viewer.dataSources.removeAll( ) |
| | | break; |
| | | case 4: |
| | | if (this.linePath != null) { |
| | |
| | | background: #303030; |
| | | opacity: 0.85; |
| | | width: 100%; |
| | | height: 6%; |
| | | padding: 1%; |
| | | position: absolute; |
| | | z-index: 40; |
| | | /deep/.el-form-item { |
| | | margin-bottom: 0px; |
| | | } |
| | | } |
| | | .menu_Popup { |
| | | background: #303030; |
| | |
| | | .active { |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url('../assets/img/Layer/imgLayer2.png') no-repeat center; |
| | | background: url("../assets/img/Layer/imgLayer2.png") no-repeat center; |
| | | position: absolute; |
| | | background-size: 100% 100%; |
| | | border-radius: 5px; |
| | |
| | | .menuLayer { |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url('../assets/img/Layer/imgLayer1.png') no-repeat center; |
| | | background: url("../assets/img/Layer/imgLayer1.png") no-repeat center; |
| | | position: absolute; |
| | | background-size: 100% 100%; |
| | | border-radius: 5px; |