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

Why does programmatically switching layers in openlayers introduce this strange behaviour?

本文关键字:方式 编程 为什么      更新时间:2023-09-26

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

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

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

这是代码:

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上设置了回调函数。

要切换地图图层,您应该使用 Map 的方法setBaseLayer 。请参阅文档。

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

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

或者,您可以使用以下名称查找图层:

map.getLayersByName(layerName);