| @@ -0,0 +1,54 @@ | |||
| import request from '@/utils/request' | |||
| // 查询镇边界列表 | |||
| export function listTown(query) { | |||
| return request({ | |||
| url: '/houseSurvey/town/list', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 导出镇边界 | |||
| export function exportTown(query) { | |||
| return request({ | |||
| url: '/houseSurvey/town/export', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 查询镇边界详细 | |||
| export function getTown(fid) { | |||
| return request({ | |||
| url: '/houseSurvey/town/get/' + fid, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 新增镇边界 | |||
| export function addTown(data) { | |||
| return request({ | |||
| url: '/houseSurvey/town/add', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 修改镇边界 | |||
| export function updateTown(data) { | |||
| return request({ | |||
| url: '/houseSurvey/town/edit', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 删除镇边界 | |||
| export function delTown(fid) { | |||
| return request({ | |||
| url: '/houseSurvey/town/remove/' + fid, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -0,0 +1,54 @@ | |||
| import request from '@/utils/request' | |||
| // 查询村边界列表 | |||
| export function listVillage(query) { | |||
| return request({ | |||
| url: '/houseSurvey/village/list', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 导出村边界 | |||
| export function exportVillage(query) { | |||
| return request({ | |||
| url: '/houseSurvey/village/export', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 查询村边界详细 | |||
| export function getVillage(fid) { | |||
| return request({ | |||
| url: '/houseSurvey/village/get/' + fid, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 新增村边界 | |||
| export function addVillage(data) { | |||
| return request({ | |||
| url: '/houseSurvey/village/add', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 修改村边界 | |||
| export function updateVillage(data) { | |||
| return request({ | |||
| url: '/houseSurvey/village/edit', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 删除村边界 | |||
| export function delVillage(fid) { | |||
| return request({ | |||
| url: '/houseSurvey/village/remove/' + fid, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -69,3 +69,11 @@ export function uploadFile(data) { | |||
| data: data | |||
| }) | |||
| } | |||
| //查询当前登录账号坐标 | |||
| export function getQueryLand() { | |||
| return request({ | |||
| url: '/system/dept/get/current', | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -0,0 +1,380 @@ | |||
| <template> | |||
| <div> | |||
| <p class="fuTitle">地块位置绘制</p> | |||
| <div id="full-screen-acceptance" style="width: 100%;height:45vh;"> | |||
| <div :id=this.uuidMap style="width: 100%;height: 100%"></div> | |||
| <div id='land-btn-wrap'> | |||
| <!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" @click="" type="primary">画图</el-button>--> | |||
| <!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/> --> | |||
| <!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" type="primary">重置图层</el-button>--> | |||
| <input :id="this.drawingPolygonMap" class="ant-btn ant-btn-red" type="button" value="画图"/> | |||
| <input :id="this.drawingResetMap" type="button" class="ant-btn ant-btn-red" value="重置图层"/> | |||
| </div> | |||
| </div> | |||
| <div id="info" style="display: none"></div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import {getQueryLand} from "@/api/homesteadSurvey/zjdzd"; | |||
| import $ from "jquery"; | |||
| export default { | |||
| components: { | |||
| getQueryLand, | |||
| }, | |||
| data() { | |||
| return { | |||
| closeMoule: null, | |||
| uuidMap: this.guidProduct(), | |||
| drawingPolygonMap: this.guidProduct(), | |||
| drawingResetMap: this.guidProduct(), | |||
| }; | |||
| }, | |||
| props: ['theGeom','message'], | |||
| // created() { | |||
| // // setTimeout(() => { | |||
| // // this.drawingPaceCountryDarw(); | |||
| // // }, 100); | |||
| // }, | |||
| methods: { | |||
| //地图加载 | |||
| formSubmit(){ | |||
| //父组件监听的名字必须是formSubmit | |||
| // 子组件调用父组件的方法并传参 | |||
| if(this.closeMoule =="" || this.closeMoule == null){ | |||
| this.$emit('formSubmit', null); | |||
| }else{ | |||
| this.$emit('formSubmit', JSON.stringify(this.closeMoule)); | |||
| } | |||
| }, | |||
| guidProduct(){ | |||
| return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |||
| var r = Math.random() * 16 | 0, | |||
| v = c == 'x' ? r : (r & 0x3 | 0x8); | |||
| return v.toString(16); | |||
| }); | |||
| }, | |||
| //地图查看 | |||
| drawingPaceCountryDarw() { | |||
| //加载地图编辑 | |||
| var that = this; | |||
| var map; | |||
| //var hc_land; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| if (that.message != null && that.message != "" | |||
| && that.message != undefined) { | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var hc_land; | |||
| var hc_landFuther; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 15, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18.3, //地图放大限制 | |||
| }), | |||
| }); | |||
| //图层查询定位开始 ---------start | |||
| if(this.message.substring(0,1) =="{"){ | |||
| // var theGeomMap =this.message.replace("Point", "MultiPolygon"); | |||
| // var pointLeft = theGeomMap.replace("[", "[[[["); | |||
| // var pointRight = pointLeft.replace("]", "]]]]"); | |||
| hc_land = new ol.layer.Vector({ | |||
| title: "add Layer", | |||
| source: new ol.source.Vector({ | |||
| projection: projection, | |||
| features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| " \"type\": \"Feature\",\n" + | |||
| " \"geometry\":" + this.message + "}"), | |||
| }), | |||
| style: new ol.style.Style({ | |||
| fill: new ol.style.Fill({ | |||
| //矢量图层填充颜色,以及透明度 | |||
| color: "rgba(204, 255, 204,0.3)", | |||
| }), | |||
| stroke: new ol.style.Stroke({ | |||
| //边界样式 | |||
| color: "#47c68f", | |||
| width: 3, | |||
| }), | |||
| }), | |||
| }); | |||
| map.addLayer(hc_land); | |||
| var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX; | |||
| var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY; | |||
| var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX; | |||
| var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY; | |||
| //定位查询位置 | |||
| var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 | |||
| map.getView().animate({ | |||
| // 只设置需要的属性即可 | |||
| center: center, // 中心点 | |||
| zoom: 17.9, // 缩放级别 | |||
| rotation: undefined, // 缩放完成view视图旋转弧度 | |||
| duration: 1000, // 缩放持续时间,默认不需要设置 | |||
| }); | |||
| } | |||
| // if(this.message.substring(0,1) =="["){ | |||
| // var zbNew = JSON.stringify({"type": "MultiPolygon", "coordinates": [[[this.message.replaceAll("\"","")]]]}); | |||
| // var leftJoin = zbNew.replace("\"[","["); | |||
| // var rightJoin = leftJoin.replace("\"]","]"); | |||
| // hc_landFuther = new ol.layer.Vector({ | |||
| // title: "add Layer", | |||
| // source: new ol.source.Vector({ | |||
| // projection: projection, | |||
| // features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| // " \"type\": \"Feature\",\n" + | |||
| // " \"geometry\":" + rightJoin + "}"), | |||
| // }), | |||
| // style: new ol.style.Style({ | |||
| // fill: new ol.style.Fill({ | |||
| // //矢量图层填充颜色,以及透明度 | |||
| // color: "rgba(204, 255, 204,0.3)", | |||
| // }), | |||
| // stroke: new ol.style.Stroke({ | |||
| // //边界样式 | |||
| // color: "#47c68f", | |||
| // width: 3, | |||
| // }), | |||
| // }), | |||
| // }); | |||
| // map.addLayer(hc_landFuther); | |||
| // var maxXMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.maxX; | |||
| // var maxYMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.maxY; | |||
| // var minXMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.minX; | |||
| // var minYMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.minY; | |||
| // //定位查询位置 | |||
| // var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 | |||
| // map.getView().animate({ | |||
| // // 只设置需要的属性即可 | |||
| // center: center, // 中心点 | |||
| // zoom: 17.9, // 缩放级别 | |||
| // rotation: undefined, // 缩放完成view视图旋转弧度 | |||
| // duration: 1000, // 缩放持续时间,默认不需要设置 | |||
| // }); | |||
| // } | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawingPolygonMap).click(function () { | |||
| map.removeLayer(hc_land); | |||
| //map.removeLayer(hc_landFuther); | |||
| map.removeLayer(vector_drawing); | |||
| //that.closeMoule = null; | |||
| map.removeInteraction(draw); | |||
| //var source = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: new ol.source.Vector(), | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Polygon" | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| that.closeMoule = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#"+this.drawingResetMap).click(function () { | |||
| if(that.closeMoule !=null) { | |||
| map.removeLayer(vector_drawing); | |||
| //map.removeLayer(hc_landFuther); | |||
| map.removeInteraction(draw); | |||
| map.addLayer(hc_land); | |||
| //map.addLayer(hc_landFuther); | |||
| // that.closeMoule = null; | |||
| that.formSubmit(); | |||
| } | |||
| }); | |||
| } else{ | |||
| //this.closeMoule = null; | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //获取坐标是否存在 | |||
| var Zb; | |||
| getQueryLand().then((response) => { | |||
| if (response.code == 200) { | |||
| let InsertCode = response.data; | |||
| if (InsertCode != null) { | |||
| var lat = InsertCode.lat; | |||
| var lng = InsertCode.lng; | |||
| if(lat !=null && lng !=null && lat !="" && lng !=""){ | |||
| Zb = [lng,lat]; | |||
| }else { | |||
| Zb =[115.452752, 31.789033]; | |||
| } | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| logo: 'false', | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| center: ol.proj.fromLonLat(Zb), | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 16.9, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18, //地图放大限制 | |||
| }), | |||
| }); | |||
| } | |||
| } | |||
| }); | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawingPolygonMap).click(function () { | |||
| //that.closeMoule = null; | |||
| map.removeInteraction(draw); | |||
| //var source = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: new ol.source.Vector(), | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Polygon" | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| that.closeMoule = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#"+this.drawingResetMap).click(function () { | |||
| map.removeInteraction(draw); | |||
| map.removeLayer(vector_drawing); | |||
| //that.closeMoule = null; | |||
| that.formSubmit(); | |||
| }); | |||
| } | |||
| }, | |||
| }, | |||
| watch: {}, | |||
| }; | |||
| </script> | |||
| <style scoped> | |||
| #that.message { | |||
| width: 100%; | |||
| height: 100%; | |||
| } | |||
| .fuTitle { | |||
| border-top: 1px solid #e9e9e9; | |||
| text-align: center; | |||
| padding: 10px 0px 0px 0px; | |||
| font-size: 36px; | |||
| color: #999; | |||
| } | |||
| .ant-btn-red { | |||
| position: relative; | |||
| display: inline-block; | |||
| background: #D0EEFF; | |||
| border: 1px solid #99D3F5; | |||
| border-radius: 4px; | |||
| padding: 4px 12px; | |||
| overflow: hidden; | |||
| color: #1E88C7; | |||
| text-decoration: none; | |||
| text-indent: 0; | |||
| line-height: 20px; | |||
| } | |||
| #land-btn-wrap{ | |||
| position: relative; | |||
| width: 25%; | |||
| left: 75%; | |||
| bottom: 100%; | |||
| z-index: 2000; | |||
| padding-top: 5%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,381 @@ | |||
| <template> | |||
| <div> | |||
| <p class="fuTitle">地块位置绘制</p> | |||
| <div id="full-screen-acceptance" style="width: 100%;height:45vh;"> | |||
| <div :id=this.uuidMap style="width: 100%;height: 100%"></div> | |||
| <div id='land-btn-wrap'> | |||
| <el-row> | |||
| <!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" @click="" type="primary">画图</el-button>--> | |||
| <!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/> --> | |||
| <!--<el-button :id=this.drawingPolygonMap style="background-color:#D0EEFF;color:#1E88C7" type="primary">重置图层</el-button>--> | |||
| <input :id="this.drawingPolygonMap" class="ant-btn ant-btn-red" type="button" value="画图"/> | |||
| <input :id="this.drawingResetMap" type="button" class="ant-btn ant-btn-red" value="重置图层"/> | |||
| </el-row> | |||
| </div> | |||
| </div> | |||
| <div id="info" style="display: none"></div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import {getQueryLand} from "@/api/homesteadSurvey/zjdzd"; | |||
| import $ from "jquery"; | |||
| export default { | |||
| components: { | |||
| getQueryLand, | |||
| }, | |||
| data() { | |||
| return { | |||
| closeMoule: null, | |||
| uuidMap: this.guidProduct(), | |||
| drawingPolygonMap: this.guidProduct(), | |||
| drawingResetMap: this.guidProduct(), | |||
| }; | |||
| }, | |||
| props: ['theGeom','message'], | |||
| // created() { | |||
| // // setTimeout(() => { | |||
| // // this.drawingPaceCountryLine(); | |||
| // // }, 100); | |||
| // }, | |||
| methods: { | |||
| //地图加载 | |||
| formSubmit(){ | |||
| //父组件监听的名字必须是formSubmit | |||
| // 子组件调用父组件的方法并传参 | |||
| if(this.closeMoule =="" || this.closeMoule == null){ | |||
| this.$emit('formSubmit', null); | |||
| }else{ | |||
| this.$emit('formSubmit', JSON.stringify(this.closeMoule)); | |||
| } | |||
| }, | |||
| guidProduct(){ | |||
| return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |||
| var r = Math.random() * 16 | 0, | |||
| v = c == 'x' ? r : (r & 0x3 | 0x8); | |||
| return v.toString(16); | |||
| }); | |||
| }, | |||
| //地图查看 | |||
| drawingPaceCountryLine() { | |||
| //加载地图编辑 | |||
| var that = this; | |||
| var map; | |||
| //var hc_land; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| if (that.message != null && that.message != "" | |||
| && that.message != undefined) { | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var hc_land; | |||
| var hc_landFuther; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 15, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18.3, //地图放大限制 | |||
| }), | |||
| }); | |||
| //图层查询定位开始 ---------start | |||
| if(this.message.substring(0,1) =="{"){ | |||
| // var theGeomMap =this.message.replace("Point", "MultiPolygon"); | |||
| // var pointLeft = theGeomMap.replace("[", "[[[["); | |||
| // var pointRight = pointLeft.replace("]", "]]]]"); | |||
| hc_land = new ol.layer.Vector({ | |||
| title: "add Layer", | |||
| source: new ol.source.Vector({ | |||
| projection: projection, | |||
| features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| " \"type\": \"Feature\",\n" + | |||
| " \"geometry\":" + this.message + "}"), | |||
| }), | |||
| style: new ol.style.Style({ | |||
| fill: new ol.style.Fill({ | |||
| //矢量图层填充颜色,以及透明度 | |||
| color: "rgba(204, 255, 204,0.3)", | |||
| }), | |||
| stroke: new ol.style.Stroke({ | |||
| //边界样式 | |||
| color: "#47c68f", | |||
| width: 3, | |||
| }), | |||
| }), | |||
| }); | |||
| map.addLayer(hc_land); | |||
| var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX; | |||
| var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY; | |||
| var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX; | |||
| var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY; | |||
| //定位查询位置 | |||
| var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 | |||
| map.getView().animate({ | |||
| // 只设置需要的属性即可 | |||
| center: center, // 中心点 | |||
| zoom: 17.9, // 缩放级别 | |||
| rotation: undefined, // 缩放完成view视图旋转弧度 | |||
| duration: 1000, // 缩放持续时间,默认不需要设置 | |||
| }); | |||
| } | |||
| // if(this.message.substring(0,1) =="["){ | |||
| // var zbNew = JSON.stringify({"type": "MultiPolygon", "coordinates": [[[this.message.replaceAll("\"","")]]]}); | |||
| // var leftJoin = zbNew.replace("\"[","["); | |||
| // var rightJoin = leftJoin.replace("\"]","]"); | |||
| // hc_landFuther = new ol.layer.Vector({ | |||
| // title: "add Layer", | |||
| // source: new ol.source.Vector({ | |||
| // projection: projection, | |||
| // features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| // " \"type\": \"Feature\",\n" + | |||
| // " \"geometry\":" + rightJoin + "}"), | |||
| // }), | |||
| // style: new ol.style.Style({ | |||
| // fill: new ol.style.Fill({ | |||
| // //矢量图层填充颜色,以及透明度 | |||
| // color: "rgba(204, 255, 204,0.3)", | |||
| // }), | |||
| // stroke: new ol.style.Stroke({ | |||
| // //边界样式 | |||
| // color: "#47c68f", | |||
| // width: 3, | |||
| // }), | |||
| // }), | |||
| // }); | |||
| // map.addLayer(hc_landFuther); | |||
| // var maxXMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.maxX; | |||
| // var maxYMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.maxY; | |||
| // var minXMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.minX; | |||
| // var minYMap = hc_landFuther.values_.source.featuresRtree_.rbush_.data.minY; | |||
| // //定位查询位置 | |||
| // var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 | |||
| // map.getView().animate({ | |||
| // // 只设置需要的属性即可 | |||
| // center: center, // 中心点 | |||
| // zoom: 17.9, // 缩放级别 | |||
| // rotation: undefined, // 缩放完成view视图旋转弧度 | |||
| // duration: 1000, // 缩放持续时间,默认不需要设置 | |||
| // }); | |||
| // } | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawingPolygonMap).click(function () { | |||
| map.removeLayer(hc_land); | |||
| //map.removeLayer(hc_landFuther); | |||
| map.removeLayer(vector_drawing); | |||
| //that.closeMoule = null; | |||
| map.removeInteraction(draw); | |||
| //var source = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: new ol.source.Vector(), | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Polygon" | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| that.closeMoule = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#"+this.drawingResetMap).click(function () { | |||
| if(that.closeMoule !=null) { | |||
| map.removeLayer(vector_drawing); | |||
| //map.removeLayer(hc_landFuther); | |||
| map.removeInteraction(draw); | |||
| map.addLayer(hc_land); | |||
| //map.addLayer(hc_landFuther); | |||
| // that.closeMoule = null; | |||
| that.formSubmit(); | |||
| } | |||
| }); | |||
| } else{ | |||
| //this.closeMoule = null; | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //获取坐标是否存在 | |||
| var Zb; | |||
| getQueryLand().then((response) => { | |||
| if (response.code == 200) { | |||
| let InsertCode = response.data; | |||
| if (InsertCode != null) { | |||
| var lat = InsertCode.lat; | |||
| var lng = InsertCode.lng; | |||
| if(lat !=null && lng !=null && lat !="" && lng !=""){ | |||
| Zb = [lng,lat]; | |||
| }else { | |||
| Zb =[115.452752, 31.789033]; | |||
| } | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| logo: 'false', | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| center: ol.proj.fromLonLat(Zb), | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 16.9, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18, //地图放大限制 | |||
| }), | |||
| }); | |||
| } | |||
| } | |||
| }); | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawingPolygonMap).click(function () { | |||
| //that.closeMoule = null; | |||
| map.removeInteraction(draw); | |||
| //var source = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: new ol.source.Vector(), | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Polygon" | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| that.closeMoule = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#"+this.drawingResetMap).click(function () { | |||
| map.removeInteraction(draw); | |||
| map.removeLayer(vector_drawing); | |||
| //that.closeMoule = null; | |||
| that.formSubmit(); | |||
| }); | |||
| } | |||
| }, | |||
| }, | |||
| watch: {}, | |||
| }; | |||
| </script> | |||
| <style scoped> | |||
| #that.message { | |||
| width: 100%; | |||
| height: 100%; | |||
| } | |||
| .fuTitle { | |||
| border-top: 1px solid #e9e9e9; | |||
| text-align: center; | |||
| padding: 10px 0px 0px 0px; | |||
| font-size: 18px; | |||
| color: #999; | |||
| } | |||
| .ant-btn-red { | |||
| position: relative; | |||
| display: inline-block; | |||
| background: #D0EEFF; | |||
| border: 1px solid #99D3F5; | |||
| border-radius: 4px; | |||
| padding: 4px 12px; | |||
| overflow: hidden; | |||
| color: #1E88C7; | |||
| text-decoration: none; | |||
| text-indent: 0; | |||
| line-height: 20px; | |||
| } | |||
| #land-btn-wrap{ | |||
| position: relative; | |||
| width: 25%; | |||
| left: 75%; | |||
| bottom: 100%; | |||
| z-index: 2000; | |||
| padding-top: 5%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,437 @@ | |||
| <template> | |||
| <div> | |||
| <p class="fuTitle">地块位置绘制</p> | |||
| <div id="full-screen-acceptance" style="width: 100%;height:45vh;"> | |||
| <div :id=this.uuidMap style="width: 100%;height: 100%"></div> | |||
| <div id='land-btn-wrap'> | |||
| <el-row> | |||
| <input :id="this.drawPolygonMap" class="ant-btn ant-btn-red" type="button" value="标记"/> | |||
| <!--<input id="drawRemove" type="button" class="ant-btn ant-btn-red" value="取消"/> --> | |||
| <input :id="this.drawResetMap" type="button" class="ant-btn ant-btn-red" value="重置标记"/> | |||
| </el-row> | |||
| </div> | |||
| </div> | |||
| <div id="info" style="display: none"></div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import {getQueryLand} from "@/api/homesteadSurvey/zjdzd"; | |||
| import $ from "jquery"; | |||
| export default { | |||
| components: { | |||
| getQueryLand, | |||
| }, | |||
| data() { | |||
| return { | |||
| closeMoule: null, | |||
| reduction: null, | |||
| uuidMap: this.guidProduct(), | |||
| drawPolygonMap: this.guidProduct(), | |||
| drawResetMap: this.guidProduct(), | |||
| }; | |||
| }, | |||
| props: ['theGeom','message'], | |||
| methods: { | |||
| //地图加载 | |||
| formSubmit(){ | |||
| //父组件监听的名字必须是formSubmit | |||
| // 子组件调用父组件的方法并传参 | |||
| if(this.closeMoule =="" || this.closeMoule == null){ | |||
| this.$emit('formSubmit', null); | |||
| }else{ | |||
| this.$emit('formSubmit', JSON.stringify(this.closeMoule)); | |||
| } | |||
| }, | |||
| guidProduct(){ | |||
| return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |||
| var r = Math.random() * 16 | 0, | |||
| v = c == 'x' ? r : (r & 0x3 | 0x8); | |||
| return v.toString(16); | |||
| }); | |||
| }, | |||
| //地图查看 | |||
| pointPaceCountryDarw() { | |||
| //加载地图编辑 | |||
| var that = this; | |||
| var map; | |||
| //var hc_land; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| //矢量标注样式设置函数,设置image为图标ol.style.Icon | |||
| function createLabelStyle() { | |||
| return new ol.style.Style({ | |||
| image: new ol.style.Icon({ | |||
| //设置图标偏移 | |||
| anchor: [0.5, 1], | |||
| //标注样式的起点位置 | |||
| anchorOrigin: "top-right", | |||
| //X方向单位:分数 | |||
| anchorXUnits: "fraction", | |||
| //Y方向单位:像素 | |||
| anchorYUnits: "pixels", | |||
| //偏移起点位置的方向 | |||
| offsetOrigin: "top-right", | |||
| //透明度 | |||
| opacity: 0.9, | |||
| //图片路径 | |||
| src: require("../../assets/images/housesteadSurvey/mark.png"), | |||
| }), | |||
| text: new ol.style.Text({ | |||
| textAlign: "center", //位置 | |||
| textBaseline: "middle", //基准线 | |||
| font: "normal 12px 微软雅黑", //文字样式 | |||
| //text: "标注点", //文本内容 | |||
| fill: new ol.style.Fill({ | |||
| //文本填充样式(即文字颜色) | |||
| color: "#ff0000", | |||
| }), | |||
| }), | |||
| zIndex: 9999, | |||
| }); | |||
| } | |||
| if (that.message != null && that.message != "" | |||
| && that.message != undefined) { | |||
| this.closeMoule = null; | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var hc_land; | |||
| var draw; // global so we can remove it later | |||
| var vector_drawing; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 15.9, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18.3, //地图放大限制 | |||
| }), | |||
| }); | |||
| //图层查询定位开始 ---------start | |||
| if(this.message.substring(0,1) =="{"){ | |||
| var theGeomMap =this.message.replace("Point", "MultiPolygon"); | |||
| var pointLeft = theGeomMap.replace("[", "[[[["); | |||
| var pointRight = pointLeft.replace("]", "]]]]"); | |||
| hc_land = new ol.layer.Vector({ | |||
| title: "add Layer", | |||
| source: new ol.source.Vector({ | |||
| projection: projection, | |||
| features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| " \"type\": \"Feature\",\n" + | |||
| " \"geometry\":" + pointRight + "}"), | |||
| }), | |||
| style: new ol.style.Style({ | |||
| fill: new ol.style.Fill({ | |||
| //矢量图层填充颜色,以及透明度 | |||
| color: "rgba(204, 255, 204,0.3)", | |||
| }), | |||
| stroke: new ol.style.Stroke({ | |||
| //边界样式 | |||
| color: "#47c68f", | |||
| width: 3, | |||
| }), | |||
| }), | |||
| }); | |||
| } | |||
| if(this.message.substring(0,1) =="["){ | |||
| var zbNew = JSON.stringify({"type": "MultiPolygon", "coordinates": [[[this.message.replaceAll("\"","")]]]}); | |||
| var leftJoin = zbNew.replace("\"[","["); | |||
| var rightJoin = leftJoin.replace("\"]","]"); | |||
| hc_land = new ol.layer.Vector({ | |||
| title: "add Layer", | |||
| source: new ol.source.Vector({ | |||
| projection: projection, | |||
| features: new ol.format.GeoJSON().readFeatures("{\n" + | |||
| " \"type\": \"Feature\",\n" + | |||
| " \"geometry\":" + rightJoin + "}"), | |||
| }), | |||
| style: new ol.style.Style({ | |||
| fill: new ol.style.Fill({ | |||
| //矢量图层填充颜色,以及透明度 | |||
| color: "rgba(204, 255, 204,0.3)", | |||
| }), | |||
| stroke: new ol.style.Stroke({ | |||
| //边界样式 | |||
| color: "#47c68f", | |||
| width: 3, | |||
| }), | |||
| }), | |||
| }); | |||
| } | |||
| map.addLayer(hc_land); | |||
| var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX; | |||
| var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY; | |||
| var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX; | |||
| var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY; | |||
| //定位查询位置 | |||
| var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 | |||
| var newcenterFeature = new ol.Feature({ | |||
| geometry: new ol.geom.Point(center), //几何信息 | |||
| name: "标注点", | |||
| }); | |||
| var sourceMapLook = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: sourceMapLook, | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| newcenterFeature.setStyle(createLabelStyle()); //设置要素样式 | |||
| sourceMapLook.addFeature(newcenterFeature); | |||
| map.getView().animate({ | |||
| // 只设置需要的属性即可 | |||
| center: center, // 中心点 | |||
| zoom: 15.9, // 缩放级别 | |||
| rotation: undefined, // 缩放完成view视图旋转弧度 | |||
| duration: 1000, // 缩放持续时间,默认不需要设置 | |||
| }); | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawPolygonMap).click(function () { | |||
| map.removeLayer(hc_land); | |||
| map.removeLayer(vector_drawing); | |||
| that.closeMoule = null; | |||
| var source = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: source, | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Point", | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| map.removeInteraction(draw); | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| var newFeature = new ol.Feature({ | |||
| geometry: new ol.geom.Point(coordinate), //几何信息 | |||
| //name: "标注点", | |||
| }); | |||
| newFeature.setStyle(createLabelStyle()); //设置要素样式 | |||
| source.addFeature(newFeature); | |||
| that.closeMoule = coordinate; | |||
| that.reduction = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#" + this.drawResetMap).click(function () { | |||
| if(that.reduction !=null) { | |||
| map.removeInteraction(draw); | |||
| map.removeLayer(vector_drawing); | |||
| map.addLayer(hc_land); | |||
| newcenterFeature = new ol.Feature({ | |||
| geometry: new ol.geom.Point(center), //几何信息 | |||
| //name: "标注点", | |||
| }); | |||
| sourceMapLook = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: sourceMapLook, | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| newcenterFeature.setStyle(createLabelStyle()); //设置要素样式 | |||
| sourceMapLook.addFeature(newcenterFeature); | |||
| that.closeMoule = null; | |||
| that.formSubmit(); | |||
| } | |||
| }); | |||
| } else{ | |||
| this.closeMoule = null; | |||
| document.getElementById(that.uuidMap).innerHTML = ''; | |||
| var projection = new ol.proj.Projection({ | |||
| //地图投影类型 | |||
| code: "EPSG:3857", | |||
| units: "degrees", | |||
| //extent:extent | |||
| }); | |||
| var aerial = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "http://t0.tianditu.gov.cn/img_w/wmts?" + | |||
| "SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles" + | |||
| "&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "卫星影像图", | |||
| }); | |||
| var yingxzi = new ol.layer.Tile({ | |||
| source: new ol.source.XYZ({ | |||
| url: "https://t0.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=cc4aba6e967096098249efa069733067", | |||
| }), | |||
| isGroup: true, | |||
| name: "天地图文字标注--卫星影像图", | |||
| }); | |||
| //获取坐标是否存在 | |||
| var Zb; | |||
| var latitude; | |||
| var longitude; | |||
| //开始定位当前位置 | |||
| navigator.geolocation.getCurrentPosition(function(position) { | |||
| latitude = position.coords.latitude;// 获取纬度 | |||
| longitude = position.coords.longitude;// 获取经度 | |||
| }); | |||
| getQueryLand().then((response) => { | |||
| if (response.code == 200) { | |||
| let InsertCode = response.data; | |||
| if (InsertCode != null) { | |||
| var lat = InsertCode.lat; | |||
| var lng = InsertCode.lng; | |||
| if(latitude !=null && longitude !=null && latitude !="" && longitude !=""){ | |||
| Zb = [longitude,latitude]; | |||
| }else if(lat !=null && lng !=null && lat !="" && lng !=""){ | |||
| Zb = [lng,lat]; | |||
| }else { | |||
| Zb =[115.452752, 31.789033]; | |||
| } | |||
| //加载地图 | |||
| map = new ol.Map({ | |||
| controls: ol.control.defaults({attribution: false, zoom: false, rotate: false}).extend([]), //隐藏放大缩小按钮 | |||
| layers: [aerial, yingxzi], | |||
| projection: projection, | |||
| logo: 'false', | |||
| target: that.uuidMap, | |||
| view: new ol.View({ | |||
| center: ol.proj.fromLonLat(Zb), | |||
| //center: ol.proj.fromLonLat([115.452752, 31.789033]), | |||
| zoom: 15.9, | |||
| minZoom: 5, //地图缩小限制 | |||
| maxZoom: 18, //地图放大限制 | |||
| }), | |||
| }); | |||
| } | |||
| } | |||
| }); | |||
| //图层查询定位结束 ---------end | |||
| //开始绘制地图 | |||
| $("#"+this.drawPolygonMap).click(function () { | |||
| //map.removeLayer(hc_land); | |||
| map.removeLayer(vector_drawing); | |||
| that.closeMoule = null; | |||
| map.removeInteraction(draw); | |||
| var sourceMap = new ol.source.Vector({wrapX: false}); | |||
| vector_drawing = new ol.layer.Vector({ | |||
| source: sourceMap, | |||
| }); | |||
| map.addLayer(vector_drawing); | |||
| function addInteraction() { | |||
| draw = new ol.interaction.Draw({ | |||
| source: vector_drawing.getSource(), | |||
| type: "Point", | |||
| }); | |||
| draw.on('drawend', function (evt) { | |||
| map.removeInteraction(draw); | |||
| $("#drawRemove").trigger('click'); | |||
| var feature = evt.feature; | |||
| var geometry = feature.getGeometry(); | |||
| var coordinate = geometry.getCoordinates(); | |||
| var newFeature = new ol.Feature({ | |||
| geometry: new ol.geom.Point(coordinate), //几何信息 | |||
| //name: "标注点", | |||
| }); | |||
| newFeature.setStyle(createLabelStyle()); //设置要素样式 | |||
| sourceMap.addFeature(newFeature); | |||
| that.closeMoule = coordinate; | |||
| that.formSubmit(); | |||
| }); | |||
| map.addInteraction(draw); | |||
| } | |||
| addInteraction(); | |||
| }); | |||
| //清除画图鼠标点击事件 | |||
| // $("#drawRemove").click(function () { | |||
| // //map.addLayer(hc_land); | |||
| // map.removeInteraction(draw); | |||
| // //map.removeLayer(vector_drawing); | |||
| // }); | |||
| //还原之前图层 | |||
| $("#" + this.drawResetMap).click(function () { | |||
| map.removeInteraction(draw); | |||
| map.removeLayer(vector_drawing); | |||
| //map.addLayer(hc_land); | |||
| that.closeMoule = null; | |||
| that.formSubmit(); | |||
| }); | |||
| } | |||
| }, | |||
| }, | |||
| watch: {}, | |||
| }; | |||
| </script> | |||
| <style scoped> | |||
| #peaceCountryMap { | |||
| width: 100%; | |||
| height: 100%; | |||
| } | |||
| .fuTitle { | |||
| border-top: 1px solid #e9e9e9; | |||
| text-align: center; | |||
| padding: 10px 0px 0px 0px; | |||
| font-size: 18px; | |||
| color: #999; | |||
| } | |||
| .ant-btn-red { | |||
| position: relative; | |||
| display: inline-block; | |||
| background: #D0EEFF; | |||
| border: 1px solid #99D3F5; | |||
| border-radius: 4px; | |||
| padding: 4px 12px; | |||
| overflow: hidden; | |||
| color: #1E88C7; | |||
| text-decoration: none; | |||
| text-indent: 0; | |||
| line-height: 20px; | |||
| } | |||
| #land-btn-wrap{ | |||
| position: relative; | |||
| width: 25%; | |||
| left: 75%; | |||
| bottom: 100%; | |||
| z-index: 2000; | |||
| padding-top: 5%; | |||
| } | |||
| </style> | |||
| @@ -2173,7 +2173,7 @@ export default { | |||
| var wmsSource = new ol.source.TileWMS({ | |||
| //url: 'http://192.168.31.150:8888/geoserver/mywork_mysql/wms', | |||
| url: "http://116.255.135.38:8080/geoserver/nsgk_hc/wms", | |||
| url: "http://116.255.223.226:8080/geoserver/nsgk_hc/wms", | |||
| //url: 'http://localhost:8888/geoserver/mywork_mysql/wms', | |||
| params: { | |||
| LAYERS: "nsgk_hc:nsgk_hc_all", | |||
| @@ -2202,7 +2202,7 @@ export default { | |||
| title: "add Layer", | |||
| source: new ol.source.Vector({ | |||
| projection: projection, | |||
| // url: "http://116.255.135.38:8081/nsgk_test/profile/geojson/huancui.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // url: "http://116.255.223.226:8081/nsgk_test/profile/geojson/huancui.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // format: new ol.format.GeoJSON(), | |||
| features: new ol.format.GeoJSON().readFeatures(data), | |||
| }), | |||
| @@ -2244,7 +2244,7 @@ export default { | |||
| // title: "add Layer", | |||
| // source: new ol.source.Vector({ | |||
| // projection: projection, | |||
| // url: "http://116.255.135.38:8081/nsgk_test/profile/geojson/huancui.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // url: "http://116.255.223.226:8081/nsgk_test/profile/geojson/huancui.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // format: new ol.format.GeoJSON(), | |||
| // }), | |||
| // style: new ol.style.Style({ | |||
| @@ -2264,7 +2264,7 @@ export default { | |||
| // title: "add huancui_zhen", | |||
| // source: new ol.source.Vector({ | |||
| // projection: projection, | |||
| // url: "http://116.255.135.38:8081/nsgk_test/profile/geojson/huancui_zhen.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // url: "http://116.255.223.226:8081/nsgk_test/profile/geojson/huancui_zhen.json", //GeoJSON的文件路径,用户可以根据需求而改变 | |||
| // format: new ol.format.GeoJSON(), | |||
| // }), | |||
| // style: new ol.style.Style({ | |||
| @@ -2700,7 +2700,7 @@ export default { | |||
| nongZt[i] = new ol.layer.Tile({ | |||
| source: new ol.source.TileWMS({ | |||
| //url: 'http://192.168.31.150:8888/geoserver/mywork_mysql/wms', | |||
| url: "http://116.255.135.38:8080/geoserver/nsgk_hc/wms", | |||
| url: "http://116.255.223.226:8080/geoserver/nsgk_hc/wms", | |||
| //url: 'http://localhost:8888/geoserver/mywork_mysql/wms', | |||
| //url: 'http://localhost:8888/geoserver/new_shp/wms', | |||
| params: { | |||
| @@ -2727,7 +2727,7 @@ export default { | |||
| outputFormat: "application/json", | |||
| //filter: ol.format.filter.equalTo(t,e,r)//前者是属性名,后者是对应值 | |||
| }; | |||
| let url_dw = "http://116.255.135.38:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| let url_dw = "http://116.255.223.226:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| url_dw = url_dw + "?"; | |||
| for (let key in param_dw) { | |||
| url_dw = url_dw + key + "=" + param_dw[key] + "&"; | |||
| @@ -2859,7 +2859,7 @@ export default { | |||
| delete_map[i] = new ol.layer.Tile({ | |||
| source: new ol.source.TileWMS({ | |||
| //url: 'http://192.168.31.150:8888/geoserver/mywork_mysql/wms', | |||
| url: "http://116.255.135.38:8080/geoserver/nsgk_hc/wms", | |||
| url: "http://116.255.223.226:8080/geoserver/nsgk_hc/wms", | |||
| //url: 'http://localhost:8888/geoserver/mywork_mysql/wms', | |||
| //url: 'http://localhost:8888/geoserver/new_shp/wms', | |||
| params: { | |||
| @@ -2887,7 +2887,7 @@ export default { | |||
| outputFormat: "application/json", | |||
| //filter: ol.format.filter.equalTo(t,e,r)//前者是属性名,后者是对应值 | |||
| }; | |||
| let url_dw = "http://116.255.135.38:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| let url_dw = "http://116.255.223.226:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| url_dw = url_dw + "?"; | |||
| for (let key in param_dw) { | |||
| url_dw = url_dw + key + "=" + param_dw[key] + "&"; | |||
| @@ -3121,7 +3121,7 @@ export default { | |||
| outputFormat: "application/json", | |||
| //filter: ol.format.filter.equalTo(t,e,r)//前者是属性名,后者是对应值 | |||
| }; | |||
| let url_dw = "http://116.255.135.38:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| let url_dw = "http://116.255.223.226:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| url_dw = url_dw + "?"; | |||
| for (let key in param_dw) { | |||
| url_dw = url_dw + key + "=" + param_dw[key] + "&"; | |||
| @@ -3288,7 +3288,7 @@ export default { | |||
| outputFormat: "application/json", | |||
| //filter: ol.format.filter.equalTo(t,e,r)//前者是属性名,后者是对应值 | |||
| }; | |||
| let url_dw = "http://116.255.135.38:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| let url_dw = "http://116.255.223.226:8080/geoserver/nsgk_hc/wfs"; //wfsurl; | |||
| url_dw = url_dw + "?"; | |||
| for (let key in param_dw) { | |||
| url_dw = url_dw + key + "=" + param_dw[key] + "&"; | |||
| @@ -339,6 +339,7 @@ | |||
| label="备注" | |||
| placeholder="备注" | |||
| /> | |||
| <MapGisDrawing ref="drewingClickLoading" :message="form.theGeom" v-on:formSubmit="MapTag"></MapGisDrawing> | |||
| <div style="margin: 16px;"> | |||
| <van-button round block color="#7AC943" native-type="submit">保存</van-button> | |||
| </div> | |||
| @@ -697,6 +698,7 @@ | |||
| placeholder="备注" | |||
| :rules="[{ required: true, message: '' }]" | |||
| /> | |||
| <MapGisDrawing ref="drewingClickLoading" :message="form.theGeom" v-on:formSubmit="MapTag"></MapGisDrawing> | |||
| <div style="margin: 16px;"> | |||
| <van-button round block color="#7AC943" native-type="submit">保存</van-button> | |||
| </div> | |||
| @@ -817,6 +819,7 @@ | |||
| placeholder="备注" | |||
| :rules="[{ required: true, message: '' }]" | |||
| /> | |||
| <MapGisDrawing ref="drewingClickLoading" :message="form.theGeom" v-on:formSubmit="MapTag"></MapGisDrawing> | |||
| <div style="margin: 16px;"> | |||
| <van-button round block color="#7AC943" native-type="submit">保存</van-button> | |||
| </div> | |||
| @@ -930,6 +933,7 @@ | |||
| placeholder="备注" | |||
| :rules="[{ required: true, message: '' }]" | |||
| /> | |||
| <MapGisDrawing ref="drewingClickLoading" :message="form.theGeom" v-on:formSubmit="MapTag"></MapGisDrawing> | |||
| <div style="margin: 16px;"> | |||
| <van-button round block color="#7AC943" native-type="submit">保存</van-button> | |||
| </div> | |||
| @@ -1176,6 +1180,7 @@ | |||
| <div style="text-align:center;overflow:auto;"> | |||
| <van-button plain round color="#7AC943" size="mini" style="margin:0 auto;">查看户主信息</van-button> | |||
| </div> | |||
| <MapGisDrawing ref="drewingClickLoading" :message="form.theGeom" v-on:formSubmit="MapTag"></MapGisDrawing> | |||
| <div style="margin: 16px;"> | |||
| <van-button round block color="#7AC943" native-type="submit">保存</van-button> | |||
| </div> | |||
| @@ -1198,7 +1203,7 @@ | |||
| <p style="flex:1;text-align:right;">个人</p> | |||
| </div> | |||
| <div style="text-align:center;overflow:auto;"> | |||
| <van-button plain round color="#7AC943" size="mini" style="margin:0 auto;" @click="showzrz=true">查看自然幢信息</van-button> | |||
| <van-button plain round color="#7AC943" size="mini" style="margin:0 auto;" @click="showPopupzrz">查看自然幢信息</van-button> | |||
| </div> | |||
| </div> | |||
| <template #right> | |||
| @@ -1258,7 +1263,7 @@ | |||
| <p style="flex:1;text-align:right;">个人</p> | |||
| </div> | |||
| <div style="text-align:center;overflow:auto;"> | |||
| <van-button plain round color="#7AC943" size="mini" @click="showfsss=true" style="margin:0 auto;">查看附属设施信息</van-button> | |||
| <van-button plain round color="#7AC943" size="mini" @click="showPopupfsss" style="margin:0 auto;">查看附属设施信息</van-button> | |||
| </div> | |||
| </div> | |||
| <template #right> | |||
| @@ -1280,9 +1285,17 @@ | |||
| <script> | |||
| import {listShyqr} from "@/api/homesteadSurvey/shyqr"; | |||
| import {listZjdzd,getZjdzd,updateZjdzd,addZjdzd,uploadFile} from "@/api/homesteadSurvey/zjdzd"; | |||
| export default { | |||
| import {listZjdzd,getZjdzd,updateZjdzd,addZjdzd,uploadFile,getQueryLand} from "@/api/homesteadSurvey/zjdzd"; | |||
| import MapGisDrawing from "@/components/Map/MapGisDrawing"; | |||
| import {listZrz,getZrzZjdDmList} from "@/api/homesteadSurvey/zrz"; | |||
| import {listFsss,getFsssZjdDmList} from "@/api/homesteadSurvey/fsss"; | |||
| import { listTown, getTown } from "@/api/homesteadSurvey/town"; | |||
| import { listVillage} from "@/api/homesteadSurvey/village"; | |||
| export default { | |||
| name: "homesteadAdd", | |||
| components: { MapGisDrawing,}, | |||
| data() { | |||
| return { | |||
| active:1, | |||
| @@ -1345,7 +1358,7 @@ | |||
| this.getZjd() | |||
| }, | |||
| mounted(){ | |||
| this.mapClickLoading(); | |||
| }, | |||
| methods: { | |||
| // 图片上传前 | |||
| @@ -1503,15 +1516,18 @@ | |||
| }, | |||
| showPopupzrz() { | |||
| this.showzrz = true; | |||
| this.mapClickLoading(); | |||
| }, | |||
| showPopupfw() { | |||
| this.showfw = true; | |||
| }, | |||
| showPopupfsss() { | |||
| this.showfsss = true; | |||
| this.mapClickLoading(); | |||
| }, | |||
| showPopup3() { | |||
| this.show3 = true; | |||
| this.mapClickLoading(); | |||
| }, | |||
| onSubmit(values) { | |||
| console.log('submit', values); | |||
| @@ -1529,7 +1545,18 @@ | |||
| }else{ | |||
| this.active=1 | |||
| } | |||
| } | |||
| }, | |||
| //地图加载js------start | |||
| mapClickLoading(){ | |||
| setTimeout(() => { | |||
| this.$refs.drewingClickLoading.drawingPaceCountryDarw(); | |||
| }, 500); | |||
| }, | |||
| /** 查找地图中定位点 */ | |||
| MapTag: function (data) { | |||
| this.form.theGeom = data; | |||
| }, | |||
| //地图加载js------end | |||
| } | |||
| } | |||
| </script> | |||