Voglio controllare lo zoom in OpenLayers.Come caricare i livelli in base al livello di zoom?
Quando lo zoom è 3, voglio caricare KML1 e quando lo zoom è 4 voglio caricare KML2.
Potrebbe per favore indicarmi come posso controllare l'evento di zoom?
Voglio controllare lo zoom in OpenLayers.Come caricare i livelli in base al livello di zoom?
Quando lo zoom è 3, voglio caricare KML1 e quando lo zoom è 4 voglio caricare KML2.
Potrebbe per favore indicarmi come posso controllare l'evento di zoom?
un modo per realizzare che è quello di registrare un evento su evento "zoomend" sulla vostra mappa con qualcosa di simile
map.events.register(type, obj, listener);
È possibile trovare maggiori informazioni vi: http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html
Forse si dovrebbe anche caricare sia del tuo kml e quindi nascondi/mostra il livello corretto in base al livello di zoom.
Come j_freyre menzionato dovresti registrare una funzione, che cambia la visibilità dei tuoi layer KML, alla "zoomend" -event. Nel tuo caso deve assomigliare a questo:
map.events.register("zoomend", map, zoomChanged);
zoomChanged()
{
zoom = map.getZoom();
if (zoom == 3)
{
kml1.setVisibility (true);
kml2.setVisibility (false);
}
else if (zoom == 4)
{
kml1.setVisibility (false);
kml2.setVisibility (true);
}
}
È più efficiente memorizzare il valore di 'getZoom' in una variabile come' zoom = map.getZoom(); 'e quindi controllarlo sulle istruzioni if come' if (zoom == 3) '. In questo modo eviterai di chiamare 'getZoom' ogni volta. – Mahdi
Sono pienamente d'accordo con te e modifica la mia risposta. – ischas
voglio che ogni cambiamento dello zoom per fare something.Th evento che ho inserito è zoom_changed ma non è working.maybe avete la lista di tutti gli eventi – user1365697