In OpenLayers esegui lo zoom fino all'entità di tutti gli overlay


10

In Openlayers posso ingrandire il riquadro di delimitazione di tutti i livelli in questo modo:

map.zoomToExtent();

Posso anche ingrandire il riquadro di delimitazione di un singolo livello:

map.zoomToExtent(layer_name.getDataExtent());

Esiste un modo semplice per ingrandire l'estensione di tutti i livelli tranne quello di base? In altre parole, mostra l'estensione di tutte le sovrapposizioni.

Risposte:


6
  1. for-loop su tutti i livelli
    1. Salta il livello base [secondo le tue esigenze]
    2. Utilizzare bounds.extend (...) per creare l' API di oggetti con limiti globali
  2. Zoom al limite risultante API

Penso che questo non funzionerà, perché extends () funziona solo se viene chiamato su limiti più piccoli di quello che viene passato come argomento.
Pakman,

Come ho potuto ottenere lo stesso risultato usando OpenLayer API 3.x
imdadhusen,

@imdadhusen perché non dovresti semplicemente cercare la documentazione? stesso metodo. stesso oggetto. spazio dei nomi diverso. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim

1

che dire di riparare un map.restrictedExtent e chiamare map.zoomToExtent (map.restrictedExtent) ?


Ciò sposterebbe solo il problema ... Come potrei scoprire il rettangolo di selezione degli overlay al fine di creare la LimitExtent?
Mr_Chimp,

hai provato con ZoomToMaxExtent () - ma probabilmente ingrandirà l'estensione del livello base se più grande? se non funziona, è necessario recuperare l'estensione per ogni layer ovelay e mantenere quello più grande da correggere.
simo,

Ho provato ZoomToMaxExtend () e ingrandisce il livello base. Ho menzionato questo nella mia domanda, ma rileggendolo non è ovvio. Mantenere il riquadro di delimitazione più grande non funzionerebbe necessariamente, ovvero se due livelli non si sovrappongono. Immagino che dovrò combinare le scatole di delimitazione di ogni livello in qualche modo e quindi ottenere la scatola di delimitazione dell'oggetto risultante ...
Mr_Chimp,

Questo è tutto! Il che non è così difficile ... Ma sono d'accordo con te, è sorprendente che un tale metodo non esista ancora (o abbiamo perso qualcosa ;-) ..)
simo

Beh, speriamo di aver perso qualcosa! Lascerò la domanda aperta per ora ... per ogni evenienza!
Mr_Chimp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.