Câu trả lời:
Điều này có thể được thực hiện đơn giản bằng cách định nghĩa extent
trong đối tượng View. ví dụ
var view = new ol.View({
...
extent: [minx,miny,maxx,maxy]
...
});
var map = new ol.Map({
...
view: view,
...
});
extent
đã trở thành một tính năng được ghi lại đúng cách: openlayers.org/en/latest/apidoc/module-ol_View-View.html (khi viết, "mới nhất" = v5.3.0)
Một lựa chọn khác là:
...
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')
})
});
...
Giống như Ragnagord đã chỉ ra rằng cần phải thiết lập extent
trong của bạn ol.view
.
Tùy thuộc vào những gì bạn muốn đề cập đến cách dễ nhất là lấy phạm vi trực tiếp từ phép chiếu ( ol.proj.Projection
) hoặc lớp (bất kỳ lớp nào ol.layer
) của bạn bằng cách sử dụng getExtent()
hàm. Trong trường hợp của EPSG: 3857, công việc này:
var map = new ol.Map({
...
view: new ol.View({
...
extent: ol.proj.get("EPSG:3857").getExtent()
})
});
Tôi phải chỉ ra nếu chúng ta xem xét phép chiếu bản đồ, trong trường hợp của tôi giữa WGS84 và Spherical Mercator, có một sự thay thế với ol.proj.transformExtent
. Một câu trả lời đã được tìm thấy ở đây . Mức độ được chỉ định như sau:
var map = new ol.Map({
.
.
.
view: new ol.View({
extent: ol.proj.transformExtent([minx, miny, maxx, maxy], 'EPSG:4326', 'EPSG:3857');
.
.
.
)}
)}