我有一个地图,包括三个图层:1个基础图层、1个覆盖图层和1个WFS图层。 我是这样加载它们的:
map.addLayers([baseLayer, wfsLayer, overlayLayer]);
当用户点击地图时,应选择WFS图层上的要素。因此,在调用map.addLayers后,我添加了选择控件:
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 层可选择?
[编辑]
正如 Christophe 提到的那样,我尝试过
selectControl = new OpenLayers.Control.SelectFeature(
[wfsLayer, overlayLayer],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
);
但这导致了一个OL错误,可能是因为叠加层是一个WMS图层。
[编辑#2]
我已经在https://gis.stackexchange.com/questions/59619/select-features-of-layer-which-is-not-on-top-in-openlayers上重新发布了这个问题。
[wfsLayer,overlayLayer]
。 - Christophe Roussy