diff --git a/src/components/Map/MapGisDrawing.vue b/src/components/Map/MapGisDrawing.vue index b72207b5..e0ad2739 100644 --- a/src/components/Map/MapGisDrawing.vue +++ b/src/components/Map/MapGisDrawing.vue @@ -7,6 +7,7 @@ +    @@ -29,6 +30,8 @@ export default { uuidMap: this.guidProduct(), drawingPolygonMap: this.guidProduct(), drawingResetMap: this.guidProduct(), + positioningMap: this.guidProduct(), + newZb: null, }; }, props: ['theGeom','message'], @@ -245,6 +248,12 @@ export default { that.formSubmit(); } }); + //定位当前绘制图层 + $("#"+this.positioningMap).click(function () { + setTimeout(() => { + that.drawingPaceCountryDarw(); + }, 100); + }); } else{ //this.closeMoule = null; document.getElementById(that.uuidMap).innerHTML = ''; @@ -398,6 +407,7 @@ export default { var feature = evt.feature; var geometry = feature.getGeometry(); var coordinate = geometry.getCoordinates(); + that.newZb = JSON.stringify(coordinate); if(coordinate !="" && coordinate !=null){ //map.addLayer(vector_drawing); map.removeInteraction(draw); @@ -424,6 +434,100 @@ export default { //that.closeMoule = null; that.formSubmit(); }); + //定位当前绘制图层 + $("#"+this.positioningMap).click(function () { + console.log(that.newZb); + //图层查询定位开始 ---------start + //if(){} + if(that.newZb.substring(0,1) =="{"){ + //that.newHt ="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\":" + that.newZb + "}"), + }), + 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, // 缩放持续时间,默认不需要设置 + }); + // let resolution = map.getView().getResolutionForExtent([maxXMap, maxYMap, minXMap, minYMap],map.getSize()); + // map.getView().fit([maxXMap, maxYMap, minXMap, minYMap]); + // map.getView().setResolution(resolution); + } else if(that.newZb.substring(0,1) =="["){ + //that.newHt ="1"; + var zbNew = JSON.stringify({"type": "MultiPolygon", "coordinates": [that.newZb.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]); //获取边界区域的中心位置 + map.getView().animate({ + // 只设置需要的属性即可 + center: center, // 中心点 + zoom: 16.9, // 缩放级别 + rotation: undefined, // 缩放完成view视图旋转弧度 + duration: 1000, // 缩放持续时间,默认不需要设置 + }); + // let resolution = map.getView().getResolutionForExtent([maxXMap, maxYMap, minXMap, minYMap],map.getSize()); + // map.getView().fit([maxXMap, maxYMap, minXMap, minYMap]); + // map.getView().setResolution(resolution); + } else { + + } + //图层查询定位结束 ---------end + }); } }, },