【发布时间】:2015-05-24 08:46:44
【问题描述】:
我正在尝试通过用户单击从两层返回多个特征(每层一个特征)?
我正在使用 openLayers 2.12。我有 2 个包含多边形的矢量图层和一个包含两者的容器层。
当点击两个图层都包含一个特征的地方时,只返回 layer2 的特征。
如何在同一位置的 layer1 也获得特征?
是否可以从视口位置的特定图层获取特征?
【问题讨论】:
标签: javascript maps mapping openlayers gis
我正在尝试通过用户单击从两层返回多个特征(每层一个特征)?
我正在使用 openLayers 2.12。我有 2 个包含多边形的矢量图层和一个包含两者的容器层。
当点击两个图层都包含一个特征的地方时,只返回 layer2 的特征。
如何在同一位置的 layer1 也获得特征?
是否可以从视口位置的特定图层获取特征?
【问题讨论】:
标签: javascript maps mapping openlayers gis
解释:SelectFeature-Control 使用层 getFeatureFromEvent() 方法为点击、悬停、触摸等事件找到 一个 功能。如果 SelectFeature 控制多个层,它会将这些层粘合到一个虚拟的单层,因此在这种情况下您也最多获得一个特征。
你的第一个问题:如果你想选择多个特征,你可以使用 SelectFeature 的 selectBox(OpenLayers.Bounds) 方法:如果你从你的位置创建一个小的边界并调用 selectBox(),all由您的 SC 控制的与您的边界相交的 所有 层的特征被选中。
您的第二个问题:您可以从您的视口位置组成一个 OpenLayer.Event 并为特定图层调用 getFeatureFromEvent()。这当然只会返回一个特征,即使很多特征在您的位置重叠。
希望能有所帮助。
【讨论】: