从选择ol3获取功能信息

时间:2016-11-12 00:16:33

标签: openlayers-3

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

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的经验不多。

2 个答案:

答案 0 :(得分:1)

我发现了我的问题。尝试通过

访问这些功能
<button id="b"   onclick="Bold()">Bold</button>

<p id="texto" style="font-weight:normal;">Hi</p>

正确的语法应该是:

var myfeature = features[0];

但在之前的例子中,功能[0]已经奏效。会很想明白为什么会这样......

答案 1 :(得分:1)

如果你看一下openlayers 3的文档 http://openlayers.org/en/latest/apidoc/ol.interaction.Select.html#getFeatures     selectSingleClick.getFeatures() 返回ol.Collection()对象,它是对普通Javascript数组对象的增强。 有关ol.Collection()的更多信息,请查看此链接。 http://openlayers.org/en/latest/apidoc/ol.Collection.html

var myfeature = features[0];

是从数组中获取对象的常规方法。