Respostas:
Isso pode ser feito simplesmente definindo extent
no objeto View. por exemplo
var view = new ol.View({
...
extent: [minx,miny,maxx,maxy]
...
});
var map = new ol.Map({
...
view: view,
...
});
extent
tornou-se um recurso adequado e documentado: openlayers.org/en/latest/apidoc/module-ol_View-View.html (até o momento em que escrevemos, "latest" = v5.3.0) #
Outra opção é:
...
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')
})
});
...
Como Ragnagord já apontou, é necessário definir o extent
seu ol.view
.
Dependendo do que você deseja consultar, a maneira mais fácil é obter a extensão diretamente da sua projeção ( ol.proj.Projection
) ou camada (qualquer classe de ol.layer
) desejada, usando a getExtent()
função No caso do EPSG: 3857, isso funciona:
var map = new ol.Map({
...
view: new ol.View({
...
extent: ol.proj.get("EPSG:3857").getExtent()
})
});
Devo salientar que se considerarmos a projeção do mapa, no meu caso entre WGS84 e Spherical Mercator, existe uma alternativa ol.proj.transformExtent
. Uma resposta foi encontrada aqui . A extensão é atribuída da seguinte forma:
var map = new ol.Map({
.
.
.
view: new ol.View({
extent: ol.proj.transformExtent([minx, miny, maxx, maxy], 'EPSG:4326', 'EPSG:3857');
.
.
.
)}
)}