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.

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

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) ?


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.