W OpenLayers powiększ zakres wszystkich nakładek

10

W Openlayers mogę powiększyć obwiednię wszystkich warstw w następujący sposób:

map.zoomToExtent();

Mogę również powiększyć obwiednię pojedynczej warstwy:

map.zoomToExtent(layer_name.getDataExtent());

Czy istnieje prosty sposób powiększania w zakresie wszystkich warstw oprócz warstwy podstawowej? Innymi słowy, pokazując zasięg wszystkich nakładek.

Mr_Chimp
źródło

Odpowiedzi:

6
  1. pętla for na wszystkich twoich warstwach
    1. Pomiń warstwę podstawową [zgodnie z wymaganiami]
    2. Użyj bounds.extend (...), aby zbudować wszechstronny interfejs API obiektu granic
  2. Powiększ do wynikowego interfejsu API granic
Vadim
źródło
Myślę, że to nie zadziała, ponieważ extends () działa tylko wtedy, gdy jest wywoływany w mniejszych granicach niż ten, który jest przekazywany jako argument.
pakman
Jak mogłem osiągnąć to samo, używając OpenLayer API 3.x
imdadhusen
@imdadhusen dlaczego po prostu nie przejrzałbyś dokumentacji? ta sama metoda. ten sam obiekt. inna przestrzeń nazw. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim
1

co z naprawieniem map.restrictedExtent i wywołaniem map.zoomToExtent (map.restrictedExtent) ?

simo
źródło
To po prostu poruszyłoby problem ... Jak mogę znaleźć obwiednię nakładek, aby utworzyć ograniczony zakres?
Mr_Chimp
próbowałeś z ZoomToMaxExtent () - ale prawdopodobnie powiększałby się do zakresu warstwy podstawowej, gdyby był większy? jeśli to nie zadziała, musisz pobrać zasięg dla każdej z warstw jaj i zachować największą, aby naprawić ograniczonyExtent.
simo
Próbowałem ZoomToMaxExtend () i przybliża się do warstwy podstawowej. Wspomniałem o tym w moim pytaniu, ale przy ponownym czytaniu nie jest to oczywiste. Zachowanie największego obwiedni niekoniecznie zadziałałoby - tzn. Jeśli dwie warstwy nie zachodzą na siebie. Chyba będę musiał jakoś połączyć ramki ograniczające każdej warstwy, a następnie uzyskać ramkę ograniczającą wynikowego obiektu ...
Mr_Chimp
Otóż ​​to! Co nie jest takie trudne ... Ale zgadzam się z tobą, to zaskakujące, że taka metoda jeszcze nie istnieje (lub coś przeoczyliśmy ;-) ..)
simo
Mam nadzieję, że coś przeoczyliśmy! Na razie pozostawię pytanie otwarte ... na wszelki wypadek!
Mr_Chimp