Answers:
只需extent
在View对象中定义即可。例如
var view = new ol.View({
...
extent: [minx,miny,maxx,maxy]
...
});
var map = new ol.Map({
...
view: view,
...
});
extent
已成为一个有据可查的功能:openlayers.org/en/latest/apidoc/module-ol_View-View.html(撰写本文时,“最新” = v5.3.0)
另一个选择是:
...
var map = new ol.Map({
layers: [...],
overlays: [...],
target: document.getElementById('map'),
view: new ol.View({
center: ol.proj.transform([minx,miny,maxx,maxy],
'EPSG:4326', 'EPSG:3857'),
zoom: ...,
maxZoom: ...,
minZoom: ...,
extent: ol.proj.transform([minx-n,miny-n,maxx+n,maxy+n],
'EPSG:4326', 'EPSG:3857')
})
});
...
我必须指出,如果我们考虑地图投影,在我的情况下,在WGS84和Spherical Mercator之间,可以使用替代ol.proj.transformExtent
。在这里找到答案。范围分配如下:
var map = new ol.Map({
.
.
.
view: new ol.View({
extent: ol.proj.transformExtent([minx, miny, maxx, maxy], 'EPSG:4326', 'EPSG:3857');
.
.
.
)}
)}