为什么在openlayers中以编程方式切换层会引入这种奇怪的行为?

时间:2012-06-11 18:06:26

标签: javascript geolocation openlayers

我希望在单击控制按钮时以编程方式切换图层。

当我这样做时,地图停止正常工作,它变得非常错误。 更确切地说,绘图处理程序在此之后根本无法正常工作。

任何人都可以告诉我如何在图层之间切换并以编程方式控制它们,为什么这不起作用?

以下是代码:

find_control(editing_toolbar_polygon.getControlsByClass(new RegExp(".*DrawFeature")),"Point").events.register("activate",null,function(e){
    map.removeControl(editing_toolbar_polygon);
    polygon_layer.setVisibility(false);
    vectors.setVisibility(true);
    map.addControl(editing_toolbar_vector);
});

此:

find_control(editing_toolbar_polygon.getControlsByClass(new RegExp(".*DrawFeature")),"Point")

只返回一个控件,我在activate上设置了一个回调函数。

2 个答案:

答案 0 :(得分:2)

要切换地图图层,您应该使用Map的方法setBaseLayer。见documentation

答案 1 :(得分:2)

更改图层您将使用以下代码段:

map.setBaseLayer(map.layers[0]);

或者您可以按名称找到图层:

map.getLayersByName(layerName);