Dalam OpenLayers memperbesar hingga semua overlay

10

Di Openlayers saya dapat memperbesar ke kotak pembatas dari semua lapisan seperti ini:

map.zoomToExtent();

Saya juga dapat memperbesar ke kotak pembatas dari satu lapisan:

map.zoomToExtent(layer_name.getDataExtent());

Apakah ada cara mudah untuk memperbesar sampai batas semua lapisan kecuali lapisan dasar? Dengan kata lain menunjukkan sejauh mana semua overlay.

Mr_Chimp
sumber

Jawaban:

6
  1. untuk-loop atas semua layer Anda
    1. Lewati lapisan dasar [sesuai kebutuhan Anda]
    2. Gunakan bounds.extend (...) untuk membuat objek API batas yang mencakup semuanya
  2. Zoom ke API batas yang dihasilkan
Vadim
sumber
Saya pikir ini tidak akan berhasil, karena extends () hanya berfungsi jika dipanggil pada batas yang lebih kecil daripada yang dilewatkan sebagai argumen.
pakman
Bagaimana saya bisa mencapai yang sama menggunakan OpenLayer API 3.x
imdadhusen
@imdadhusen mengapa Anda tidak mencari dokumentasi saja? metode yang sama. objek yang sama. namespace yang berbeda. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim
1

bagaimana dengan memperbaiki map.restrictedExtent dan panggil map.zoomToExtent (map.restrictedExtent) ?

simo
sumber
Itu hanya akan memindahkan masalah ... Bagaimana saya mengetahui kotak pembatas dari overlay untuk membuat dibatasiExtent?
Mr_Chimp
sudahkah Anda mencoba dengan ZoomToMaxExtent () - tetapi mungkin akan memperbesar hingga tingkat lapisan dasar jika lebih besar? jika tidak berhasil, Anda harus mengambil tingkat untuk setiap lapisan ovelays dan menyimpan yang terbesar untuk memperbaiki dibatasiExtent.
Simo
Saya mencoba ZoomToMaxExtend () dan tampilannya ke lapisan dasar. Saya menyebutkan ini dalam pertanyaan saya tetapi membaca ulang itu tidak jelas. Menjaga kotak pembatas terbesar tidak akan selalu berhasil - yaitu jika dua lapisan tidak tumpang tindih. Saya kira saya harus menggabungkan kotak pembatas dari setiap lapisan entah bagaimana dan kemudian mendapatkan kotak pembatas dari objek yang dihasilkan ...
Mr_Chimp
Itu dia! Yang tidak terlalu sulit ... Tapi saya setuju dengan Anda, mengejutkan metode seperti itu belum ada (atau kami melewatkan sesuatu ;-) ..)
simo
Semoga semoga kita melewatkan sesuatu! Saya akan membiarkan pertanyaan terbuka untuk saat ini ... untuk berjaga-jaga!
Mr_Chimp