2012-05-23 20 views

risposta

3

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.

+0

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

6

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); 
    } 
} 
+0

È 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

+0

Sono pienamente d'accordo con te e modifica la mia risposta. – ischas

Problemi correlati