在 OpenLayers 中同时从多个层获取 FeatureFromEvent

getFeatureFromEvent from multiple layers simultaneously in OpenLayers

我正在尝试 return 用户点击两个图层的多个功能(每个图层一个功能)?

我正在使用 openLayers 2.12。我有 2 个包含多边形的矢量图层和一个包含两者的容器层。

单击两个图层都包含特征的位置时,只有第 2 层特征被 returned。

如何在同一位置也获得layer1的特征?

是否可以从视口位置的特定图层获取特征?

说明:SelectFeature-控件使用图层getFeatureFromEvent()方法为单击、悬停、触摸等事件找到一个功能。如果 SelectFeature 控制多个层,它将这些层粘附到一个虚拟的单层,因此在这种情况下您也最多获得一个特征。

你的第一个问题:如果你想要 select 多个特征,你可以使用 SelectFeature 的 selectBox(OpenLayers.Bounds) 方法:如果你从你的位置创建一个小边界并调用 selectBox(),来自 all 层的 all 特征与你的边界相交得到 selected.

您的第二个问题:您可以从您的视口位置组成一个 OpenLayer.Event 并为特定图层调用 getFeatureFromEvent()。这当然 return 只有一个特征,即使在您的位置有很多特征重叠。

希望对您有所帮助。