Javascript 在选择上获取要素id
获取从地图中选择的要素的id时遇到问题。下面是我如何添加功能的示例:Javascript 在选择上获取要素id,javascript,openlayers-3,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 o
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);
以下是我选择功能的设置:
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?谢谢 我找到了一种收集id的方法,尽管它有点复杂。我跟随pointermove事件不断收集鼠标的位置。然后,当点击地图时,会捕捉到鼠标在那一瞬间的位置,我们现在能够在该像素位置循环浏览每个功能
map.on('singleclick', function(evt) {
var pixel = map.getPixelFromCoordinate(evt.coordinate);
map.forEachFeatureAtPixel(pixel, function(feature) {
console.log(feature.getId()); // id of selected feature
});
});
如果您在该位置有多个功能,您将获得多个功能。希望这能帮助其他有此问题的人。鼠标位置也可以在单击事件时获得,因此您不需要听指针移动来收集它。尝试在click回调方法中添加
browserEvent
参数,并从中获取坐标。