2016-11-12 72 views
2

我正在使用Openlayers 3并希望根据选定对象上包含的信息实时创建图。我需要访问属性,但get('myfield')不起作用。我的功能位于GeoJSON矢量图层中。从选择ol3获取功能信息

var selectSingleClick = new ol.interaction.Select(); 
map.addInteraction(selectSingleClick); 


map.on('singleclick', function(event){ 
    mylayer.once('precompose',function(event){ 
     var selectedFeatures = selectSingleClick.getFeatures(); 
     readFeature(selectedFeatures); 
    }); 
}); 

function readFeature(features){ 
    consoleText = document.getElementById('console'); 
// When selected, getLength() returns 1, so selection is working. 
// consoleText.innerHTML = features.getLength(); 
    var myfeature = features[0]; 
    consoleText.innerHTML += myfeature.get('objectId'); 
} 

任何人都可以帮助我理解发生了什么问题吗?我没有太多的Javascript经验。

回答

0

我发现我的问题。试图通过

var myfeature = features[0]; 

正确的语法访问的功能应该是:

var myfeature = features.item(0); 

但在前面的例子功能[0]工作过。将热心明白为什么会是这样......