来自特征的不同层 map.on 方法的信息

information about diferents layers map.on method from features

如何使用 map.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

要更好地控制格式,请使用 for ... in 循环。然后,您可以排除内部 属性 键,例如在显示时没有意义的几何图形。

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