我正在使用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的经验不多。
答案 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];
是从数组中获取对象的常规方法。