How to load layers depending on zoom level?

user1365697 picture user1365697 · May 23, 2012 · Viewed 8.7k times · Source

I want to control the zoom in OpenLayers.

When the zoom is 3 I want to load KML1 and when the zoom is 4 i want to load KML2.

Could you please advise me how I can control the zoom-event?

Answer

ischas picture ischas · Mar 28, 2013

As j_freyre mentioned you should register a function, which changes the visibility of your KML-layers, to the "zoomend"-event. In your case it has to look like this:

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