我有一个包含 3 层的地图:1 个基础层、1 个叠加层和 1 个 WFS 层。我像这样加载它们:
map.addLayers([baseLayer, wfsLayer, overlayLayer]);
当用户点击地图时,它应该选择 WFS 图层上的要素。所以我在调用map.addLayers之后添加了select控件:
selectControl = new OpenLayers.Control.SelectFeature(
[wfsLayer],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
map.addControl(selectControl);
selectControl.activate();
这很好用,我的功能在单击时被选中。
但我的覆盖层位于 WFS 层下方,我希望它位于顶部。覆盖层是未填充的多边形层。所以我加了
map.setLayerZIndex(overlayLayer, map.Z_INDEX_BASE[ "Feature" ]+10);
在 map.addLayers 之后。这看起来不错。我的覆盖层现在位于我的 WFS 层之上。但是当我现在点击地图时,什么都没有被选中。
很可能我做得不对。如何使我的覆盖层在顶部并且我的 WFS 层可选择?
[编辑]
正如克里斯托夫所说,我试过
selectControl = new OpenLayers.Control.SelectFeature(
[wfsLayer, overlayLayer],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
但这导致了 OL 错误,可能是因为覆盖层是 WMS 层。
[编辑#2]