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
+ });
}
},
},