| | |
| | | id="mapView" |
| | | class="MapBox" |
| | | v-loading="loading" |
| | | element-loading-spinner="el-icon-loading" |
| | | |
| | | element-loading-background="rgba(0, 0, 0, 0.8)" |
| | | > |
| | | <div class="topMenu"> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="formInline" |
| | | class="demo-form-inline" |
| | | > |
| | | <el-form-item> |
| | | <el-link |
| | | style="color: white" |
| | | @click="showLeftMenu(1)" |
| | | :underline="false" |
| | | title="图层列表" |
| | | ><i class="el-icon-s-operation"></i |
| | | ></el-link> |
| | | ><i class="el-icon-s-operation"></i></el-link> |
| | | </el-form-item> |
| | | <el-form-item label="比例尺"> |
| | | <el-select v-model="value" placeholder="请选择"> |
| | | <el-form-item> |
| | | <el-select |
| | | v-model="value" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | |
| | | style="color: white" |
| | | @click="setMapAddDraw()" |
| | | :underline="false" |
| | | ><i class="el-icon-edit-outline"></i>绘制</el-link |
| | | > |
| | | ><i class="el-icon-edit-outline"></i>绘制</el-link> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-link |
| | |
| | | @click="setMapRemoveDraw()" |
| | | :underline="false" |
| | | title="图层列表" |
| | | ><i class="el-icon-delete"></i>清除</el-link |
| | | > |
| | | ><i class="el-icon-delete"></i>清除</el-link> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | |
| | | @click="showMapApply = true" |
| | | :underline="false" |
| | | :disabled="layerExtent == null" |
| | | >出图申请 |
| | | </el-link></el-form-item |
| | | > |
| | | >出图申请 |
| | | </el-link> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-link |
| | | style="color: white" |
| | | @click="getShowMapList" |
| | | :underline="false" |
| | | >出图列表</el-link |
| | | ></el-form-item |
| | | > |
| | | >出图列表</el-link> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-link |
| | | style="color: white" |
| | | @click="changeMenulayer" |
| | | :underline="false" |
| | | v-show="isActive" |
| | | >影像</el-link |
| | | > |
| | | >影像</el-link> |
| | | <el-link |
| | | style="color: white" |
| | | v-show="!isActive" |
| | | @click="changeMenulayer" |
| | | :underline="false" |
| | | >矢量</el-link |
| | | > |
| | | >矢量</el-link> |
| | | </el-form-item> |
| | | <el-form-item label="旋转角度"> |
| | | <el-input |
| | |
| | | :class="{ left_main_show: !leftMenuOpen }" |
| | | > |
| | | <div class="menu_content"> |
| | | <div class="topHeader" v-show="lefMenuContent"> |
| | | <div |
| | | class="topHeader" |
| | | v-show="lefMenuContent" |
| | | > |
| | | <div>图层列表</div> |
| | | <div @click="showLeftMenu(2)"><i class="el-icon-s-fold"></i></div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="bottomContent"> |
| | | <div style="width: 100%" v-show="lefMenuContent"> |
| | | <div |
| | | style="width: 100%" |
| | | v-show="lefMenuContent" |
| | | > |
| | | <el-tree |
| | | :data="data" |
| | | show-checkbox |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="mapApplay" v-if="showMapApply"> |
| | | <div |
| | | class="mapApplay" |
| | | v-if="showMapApply" |
| | | > |
| | | <label>出图申请</label> |
| | | <el-divider /> |
| | | <el-form ref="form" :model="form" label-width="80px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | label-width="80px" |
| | | > |
| | | <el-form-item label="出图名称"> |
| | | <el-input v-model="form.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-table |
| | | ref="singleTable" |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | height="200" |
| | | > |
| | | <el-table-column type="index" label="序号" width="50"> |
| | | </el-table-column> |
| | | <div style="padding:1%;border:1px solid white"> |
| | | <el-table |
| | | ref="singleTable" |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | height="200" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="50" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column property="name" label="图层名称"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table-column |
| | | property="name" |
| | | label="图层名称" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" @click="setMapApply">立即创建</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="setMapApply" |
| | | >立即创建</el-button> |
| | | <el-button @click="showMapApply = false">取消</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="mapApplay" v-if="showMapList"> |
| | | <div |
| | | class="mapApplay" |
| | | v-if="showMapList" |
| | | > |
| | | <div> |
| | | <label>出图列表</label> |
| | | <div style="float: right"> |
| | | <el-link @click="showMapList = false" :underline="false" |
| | | ><i style="color: white" class="el-icon-close"></i |
| | | ></el-link> |
| | | <el-link |
| | | @click="showMapList = false" |
| | | :underline="false" |
| | | ><i |
| | | style="color: white" |
| | | class="el-icon-close" |
| | | ></i></el-link> |
| | | </div> |
| | | </div> |
| | | <el-divider /> |
| | |
| | | height="200" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="index" width="50" label="序号"> |
| | | <el-table-column |
| | | type="index" |
| | | width="50" |
| | | label="序号" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column property="name" label="名称"> </el-table-column> |
| | | <el-table-column property="type" label="类型"> </el-table-column> |
| | | <el-table-column |
| | | property="descr" |
| | | label="标题" |
| | | > </el-table-column> |
| | | <el-table-column |
| | | property="name" |
| | | label="文件名称" |
| | | > </el-table-column> |
| | | <el-table-column |
| | | property="createName" |
| | | label="出图人" |
| | | > </el-table-column> |
| | | <el-table-column |
| | | property="createTime" |
| | | :formatter="formatTime" |
| | | label="日期" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column property="descr" label="描述"> </el-table-column> |
| | | <el-table-column label="操作" width="120"> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-link |
| | | style="color: white" |
| | | @click.native.prevent="downloadMap(scope.$index, scope.row)" |
| | | :underline="false" |
| | | >下载</el-link |
| | | > |
| | | >下载</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form ref="layerform" :model="layerform" label-width="80px"> |
| | | <el-form |
| | | ref="layerform" |
| | | :model="layerform" |
| | | label-width="80px" |
| | | > |
| | | <el-form-item label="服务名称"> |
| | | <el-input v-model="layerform.name"></el-input> |
| | | </el-form-item> |
| | |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="服务地址"> |
| | | <el-input type="textarea" v-model="layerform.resource"></el-input> |
| | | <el-input |
| | | type="textarea" |
| | | v-model="layerform.resource" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <span |
| | | slot="footer" |
| | | class="dialog-footer" |
| | | > |
| | | <el-button @click="dialogVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="setAddMapLayer">确 定</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="setAddMapLayer" |
| | | >确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | tableData: [], |
| | | exportable: [], |
| | | multipleSelection: [], |
| | | options: [{ label: '1:20万', value: '1:20万' }], |
| | | value: '1:20万', |
| | | options: [ |
| | | { label: 'A0', value: 'A0' }, |
| | | { label: 'A1', value: 'A1' }, |
| | | { label: 'A2', value: 'A2' }, |
| | | { label: 'A3', value: 'A3' }, |
| | | { label: 'A4', value: 'A4' }, |
| | | { label: 'A5', value: 'A5' }, |
| | | { label: 'A6', value: 'A6' }, |
| | | ], |
| | | value: 'A4', |
| | | data: [ |
| | | { |
| | | id: 1, |
| | | label: '图层', |
| | | children: [ |
| | | { |
| | | id: '11', |
| | | id: 11, |
| | | label: '项目', |
| | | value: '项目', |
| | | layer: 'LF:bs_project', |
| | | isEdit: false, |
| | | }, |
| | | { |
| | | id: 12, |
| | | label: '站场', |
| | | value: '站场', |
| | | layer: 'LF:m_sitepoint', |
| | | box: [ |
| | | 84.21228790283203, 30.412200927734375, 121.11393737792969, |
| | | 41.46569061279297, |
| | | ], |
| | | isEdit: false, |
| | | }, |
| | | { |
| | | id: '12', |
| | | id: 13, |
| | | label: '管道中心线', |
| | | value: '管道中心线', |
| | | layer: 'LF:m_pipeline', |
| | | box: [ |
| | | 25.245140075683594, 11.197434425354004, 121.11258697509766, |
| | | 49.65690231323242, |
| | | ], |
| | | isEdit: false, |
| | | }, |
| | | { |
| | | id: 14, |
| | | label: '战略通道', |
| | | value: '战略通道', |
| | | layer: 'LF:th_strategic_channel', |
| | | isEdit: false, |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | showMapLayer() { |
| | | var val = this.data[0].children; |
| | | var std = []; |
| | | for (var i = val.length - 1; i >= 0; i--) { |
| | | for (var i = 0; i < val.length; i++) { |
| | | var layer2 = new Image({ |
| | | name: val[i].label, |
| | | source: new ImageWMS({ |
| | |
| | | |
| | | this.count = data.count; |
| | | }, |
| | | |
| | | getYMD() { |
| | | let myDate = new Date(); |
| | | let myYear = myDate.getFullYear(); //获取完整的年份(4位,1970-????) |
| | | let myMonth = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月) |
| | | let myToday = myDate.getDate(); //获取当前日(1-31) |
| | | myMonth = myMonth > 9 ? myMonth : '0' + myMonth; |
| | | myToday = myToday > 9 ? myToday : '0' + myToday; |
| | | let nowDate = 'V' + myYear + myMonth + myToday; |
| | | return nowDate; |
| | | }, |
| | | setExportMapLayer(res) { |
| | | var token = '?token=' + getToken(); |
| | | var data = { |
| | | token: token.replace('?token=', ''), |
| | | title: this.form.name, |
| | | pageSize: 'A4', |
| | | pageSize: this.value, |
| | | province: '山东省', |
| | | scale: this.value, |
| | | scale: '1:20万', |
| | | resolution: '20米', |
| | | date: '2022.11.14', |
| | | date: this.getYMD(), |
| | | layers: res.toString(), |
| | | rotation: 0, |
| | | xmin: this.layerExtent.xmin, |
| | |
| | | data: JSON.stringify(data), |
| | | contentType: 'application/json', |
| | | dataType: 'json', |
| | | error: function () {}, |
| | | error: function () { }, |
| | | success: (rs) => { |
| | | this.loading = false; |
| | | var value = 'code = ' + rs.code + ', result = ' + rs.result; |
| | | if ((rs.code = 200)) { |
| | | this.$message({ |
| | | message: value, |
| | | message: "出图成功,请到出图列表查看并下载", |
| | | type: 'success', |
| | | }); |
| | | this.setMapRemoveDraw(); |
| | |
| | | } |
| | | if (this.isActive) { |
| | | val_data.push('矢量图'); |
| | | val_data.push('矢量注记'); |
| | | } else { |
| | | val_data.push('高德影像'); |
| | | val_data.push('高德影像注记'); |
| | | val_data.push('影像注记'); |
| | | val_data.push('影像图'); |
| | | } |
| | | this.setExportMapLayer(val_data); |
| | | this.showMapApply = false; |
| | | this.form = {}; |
| | | }, |
| | | handleClose() {}, |
| | | handleClose() { }, |
| | | handleTreeNodeClick(data, nodes) { |
| | | if (data.children != null) return; |
| | | var layers = mapView.getAllLayers(); |
| | |
| | | initMap() { |
| | | var TiandiLayer = new TileLayer({ |
| | | source: new XYZ({ |
| | | url: 'http://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=94a34772eb88317fcbf8428e10448561', |
| | | url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}', |
| | | }), |
| | | }); |
| | | var TiandiTitle = new TileLayer({ |
| | | source: new XYZ({ |
| | | url: 'http://t0.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=94a34772eb88317fcbf8428e10448561', |
| | | }), |
| | | }); |
| | | |
| | | var GaoDeLayer = new TileLayer({ |
| | | source: new XYZ({ |
| | | url: 'http://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=6', |
| | |
| | | }); |
| | | window.mapView = new Map({ |
| | | target: 'mapView', |
| | | layers: [TiandiLayer, TiandiTitle, GaoDeLayer, GaoDeTitle], |
| | | layers: [TiandiLayer, GaoDeLayer, GaoDeTitle], |
| | | view: new View({ |
| | | center: transform([105.02, 34.9], 'EPSG:4326', 'EPSG:3857'), |
| | | zoom: 4, |
| | | projection: 'EPSG:3857', |
| | | }), |
| | | }); |
| | | mapView.getLayers().item(1).setVisible(false); |
| | | mapView.getLayers().item(2).setVisible(false); |
| | | mapView.getLayers().item(3).setVisible(false); |
| | | this.formInline.role = mapView.getView().getRotation(); |
| | | }, |
| | | //切换底图 |
| | |
| | | }, |
| | | setLayerVisible() { |
| | | if (this.isActive == true) { |
| | | mapView.getLayers().item(2).setVisible(false); |
| | | mapView.getLayers().item(3).setVisible(false); |
| | | mapView.getLayers().item(0).setVisible(true); |
| | | mapView.getLayers().item(1).setVisible(true); |
| | | } else { |
| | | mapView.getLayers().item(2).setVisible(true); |
| | | mapView.getLayers().item(3).setVisible(true); |
| | | mapView.getLayers().item(0).setVisible(false); |
| | | mapView.getLayers().item(1).setVisible(false); |
| | | mapView.getLayers().item(2).setVisible(false); |
| | | mapView.getLayers().item(0).setVisible(true); |
| | | } else { |
| | | mapView.getLayers().item(1).setVisible(true); |
| | | mapView.getLayers().item(2).setVisible(true); |
| | | mapView.getLayers().item(0).setVisible(false); |
| | | } |
| | | }, |
| | | }, |
| | |
| | | .active { |
| | | height: 40px; |
| | | width: 60px; |
| | | 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 { |
| | | height: 40px; |
| | | width: 60px; |
| | | 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; |
| | |
| | | .mapApplay { |
| | | width: 40%; |
| | | position: absolute; |
| | | background: rgba(0, 0, 0, 0.5); |
| | | background: #303030; |
| | | z-index: 40; |
| | | top: 15%; |
| | | margin-left: 30%; |