现在做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]
- }));