如何根据缩放级别加载图层?

时间:2012-05-23 13:11:49

标签: openlayers

我想控制OpenLayers中的缩放。

当缩放为3时我想加载KML1,当缩放为4时我想加载KML2。

请告诉我如何控制缩放事件?

2 个答案:

答案 0 :(得分:6)

正如j_freyre所提到的,你应该注册一个函数,它将你的KML图层的可见性改为“zoomend”-event。在你的情况下,它必须如下所示:

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

答案 1 :(得分:3)

实现这一目标的一种方法是在地图上的事件“zoomend”上注册事件,例如

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

您可以在那里找到更多信息:http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html

也许您还应加载两个kml,然后根据缩放级别隐藏/显示正确的图层。