Openlayers 3 Maksimum Genişlik


15

Kullanıcının harita üzerinde nereye kaydırma yapabileceğini sınırlamak istiyorum, ancak OpenLayers 3'te bir harita görünümünün maksimum kapsamını nasıl ayarlayacağımı söyleyen herhangi bir kaynak bulamıyorum. OpenLayers 2'de bir çözüm olduğunu biliyorum. yeni sürümde mümkün mü?

Yanıtlar:


18

Bu extent, View nesnesinde tanımlanarak yapılabilir . Örneğin

var view = new ol.View({
    ...
    extent: [minx,miny,maxx,maxy]
    ...
});
var map = new ol.Map({
    ...
    view: view,
    ...
});


Bir çok şey belgelenmemiştir veya deneyseldir ve yalnızca kararlılık işaretlenmediğinde görülebilir
CJStuart

4
Bu gerçek bir boyut değil. Sadece uzantıları görüş alanı içinde tutar, yani her yerde çirkin beyaz boşluk vardır.
Mitchell Ingram

Bu arada, extentuygun şekilde belgelenmiş bir özellik haline geldi: openlayers.org/en/latest/apidoc/module-ol_View-View.html (yazı itibariyle, "en son" = v5.3.0)
Christallkeks

3

Başka bir seçenek:

...
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')
             })
        });
...

1

Ragnagord'un zaten işaret ettiği gibi, içinizde ayarlamanız extentgerekir ol.view.

En kolay yoldan bahsetmek istediğiniz şeye bağlı olarak , fonksiyonu kullanarak doğrudan istediğiniz projeksiyon ( ol.proj.Projection) veya katmandan (herhangi bir sınıf) kapsamı elde etmektir . EPSG: 3857 durumunda bu işe yarar:ol.layergetExtent()

var map = new ol.Map({
    ...
    view: new ol.View({
        ...
        extent: ol.proj.get("EPSG:3857").getExtent()
  })
});

1

Harita projeksiyonunu düşünürsek, WGS84 ve Küresel Mercator arasında benim durumumda bir alternatif var ol.proj.transformExtent. Burada bir cevap bulundu . Kapsam aşağıdaki gibi atanır:

var map = new ol.Map({
   .
   .
   .
   view: new ol.View({
        extent:  ol.proj.transformExtent([minx, miny, maxx, maxy], 'EPSG:4326', 'EPSG:3857');
         .
         .
         .
        )}
)}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.