¿Cómo puedo mostrar todas las propiedades de una característica usando el método map.forEachFeatureAtPixel? Obtengo un solo valor, trato de poner un bucle for para obtener todas las propiedades, pero no lo admite. Tengo este código que funciona para obtener un valor único. El uso de forEachFeatureAtPixel me permite elegir la capa en la que quiero mostrar información. este es el codigo
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>'; } });Para mostrar todas las propiedades de una característica, use JSON.stringify(feature.getProperties()) como enhttps://openlayers.org/en/latest/examples/vector-tile-info.html
Para tener más control sobre el formato, use un for ... in loop. A continuación, podría excluir claves de propiedades internas, como la geometría, que no serían significativas cuando se mostraran.
var key; var properties = feature.getProperties(); for (key in properties) { el.innerHTML += key + ': ' + properties[key]; }