获取选择的功能ID

时间:2015-04-07 16:50:15

标签: javascript openlayers-3

我无法获取从地图中选择的要素的ID。以下是我添加功能的示例:

var mylayer = map.getLayer('mylayerid');
var layersrc = mylayer.getSource();

var feature = new ol.Feature(new ol.geom.Point([0, 0]));
feature.setId(54);

layersrc.addFeature(feature);

以下是我选择功能的设置:

var selectSingleClick = new ol.interaction.Select();
    selectSingleClick.on('select', function(e) {
        // tried many things with e but can't get id of selected feature
    });
    map.addInteraction(selectSingleClick);

是否有正确的方法来捕获功能ID?谢谢!

1 个答案:

答案 0 :(得分:1)

我找到了一种收集身份证的方法,虽然它有点令人费解。我按照指针移动事件继续收集鼠标的位置。然后,当点击地图时,捕获该瞬间鼠标的位置,我们现在能够遍历该像素位置的每个要素。

map.on('singleclick', function(evt) {
    var pixel = map.getPixelFromCoordinate(evt.coordinate);
    map.forEachFeatureAtPixel(pixel, function(feature) {
        console.log(feature.getId()); // id of selected feature
    });
});

如果您在该位置有多个功能,则会获得多个功能。希望这可以帮助其他有此问题的人。