我无法获取从地图中选择的要素的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?谢谢!
答案 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
});
});
如果您在该位置有多个功能,则会获得多个功能。希望这可以帮助其他有此问题的人。