不同层的信息映射.基于特征的方法



如何使用地图显示一个特征的所有属性?forEachFeatureAtPixel方法?我得到一个值,我试着输入for循环获取所有属性,但它不支持。我有这段代码,可以获得单个值。使用forEachFeatureAtPixel可以让我选择我想要显示信息的图层。这是代码

map.on('click', function (evt) {
document.getElementById("divInformation").innerHTML = '<h1>Click for Info</h1>';
var layer;
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, featureLayer) {
layer = featureLayer;
return feature;
});
var el = document.getElementById('divInformation');
el.innerHTML = '';
if(layer === vectorLayer1){
el.innerHTML +=  feature.get('cod');
el.innerHTML += feature.get('date);
}else if(layer === vectorLayer2){
el.innerHTML += feature.get('name');
el.innerHTML += feature.get('Percent');
}else{
el.innerHTML = '<h1>click for Info</h1>';
}
});

要显示一个特性的所有属性,使用JSON.stringify(feature.getProperties()),如https://openlayers.org/en/latest/examples/vector-tile-info.html

对于格式化的更多控制使用forin循环。然后,您可以排除内部属性键,例如geometry,这些键在显示时没有意义。

var key;
var properties = feature.getProperties();
for (key in properties) {
el.innerHTML +=  key + ': ' + properties[key];
}

最新更新