现在做webgis基本都会用到openlayers或者leaflet。那么在显示地图的时候,特别是显示小区域地图的时候,由于地图区域较小,就会存在把地图拖动到显示区域之外的现象。那么该如何限制地图拖动的区域呢。
在openlayers2中有restrictedExtent属性,直接设置下即可。
var options = { controls : [ new OpenLayers.Control.Navigation() ], projection: new OpenLayers.Projection("EPSG:4326"), maxResolution: 0.703125, // minScale:1/3500, // minScale:100, numZoomLevels :22 , restrictedExtent: restrictedExtent, //maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90), //allOverlays : true }; //初始化map对象 this.map = new OpenLayers.Map('map',options);
但是在openlayers3中,由于没有直接的属性和接口使用,因此需要用别的方法。我用的方法就是在map的view对象中添加extent属性来限制。
map.setView(new ol.View({ center: mapCenter, projection: this.projection, //extent : mapExtent, zoom: 18, minZoom: 16, maxZoom: 23, extent:[mapExtent[1]-0.0001,mapExtent[0]-0.0001,mapExtent[3]+0.0001,mapExtent[2]+0.0001] }));