2012-05-23 20 views

Respuesta

3

una manera de lograr esto es para registrar un evento en el evento "ZoomEnd" en su mapa con algo como

map.events.register(type, obj, listener); 

Puede encontrar más información existe: http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html

Tal vez también se debe cargar tanto de su kml y luego ocultar/mostrar la capa correcta depende del nivel de zoom.

+0

Quiero que cada cambio del zoom para hacer something.Th caso de que se me inserta zoom_changed pero no se working.maybe que tenga la lista de todos los eventos – user1365697

6

Como mencionó j_freyre, debe registrar una función, que cambia la visibilidad de sus capas KML, en el evento "zoomend". En su caso tiene que tener este aspecto:

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

Es más eficiente almacenar el valor 'getZoom' en una variable como' zoom = map.getZoom(); 'y luego verificarlo en las sentencias if como' if (zoom == 3) '. De esta forma evitará llamar a 'getZoom' cada vez. – Mahdi

+0

Estoy totalmente de acuerdo con usted y edito mi respuesta. – ischas

Cuestiones relacionadas