我有一个带有两个矢量图层的OpenLayers地图。它们都包含标记。
借助以下链接,我设法在两个图层上获得了一个选择处理程序。 http://openlayers.org/dev/examples/select-feature-multilayer.html
此select-handler会在两个图层上为标记激发相同的函数。 但是,我如何区分选定的图层?
答案 0 :(得分:4)
在OpenLayers中,处理程序事件在单个视口或地图画布上触发。因此,您应该在每个图层上附加事件(特征选择和特征取消选择)。如果您按照代码进行操作,在示例页面中,它们是如此清晰以至于使用它们同一事件,但不同的地方,你可以改变自己的代码。
vectors1.events.on({
"featureselected": function(e) {
showStatus("selected feature "+e.feature.id+" on Vector Layer 1");
},
"featureunselected": function(e) {
showStatus("unselected feature "+e.feature.id+" on Vector Layer 1");
}
});
对于vectors2,附加了相同的事件。如果您正在寻找放置该功能的图层,则上面的代码就这样说了。