3

我有一个带有两个矢量图层的 OpenLayers 地图。它们都包含标记。

在以下链接的帮助下,我设法在两个层上都获得了一个选择处理程序。 http://openlayers.org/dev/examples/select-feature-multilayer.html

此选择处理程序为两个图层上的标记触发相同的功能。但是我怎么能不同,选择的图层位于哪一层?

4

1 回答 1

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,附加了相同的事件。如果您正在寻找功能放置在哪一层,如上面的代码所示。

于 2011-10-19T06:14:03.767 回答