Cómo obtener datos de WFS geoserver en openlayers
Tengo algunos puntos con sus datos provenientes de PostGIS a GeoServer, luego agregué estos puntos a mi mapa, pero necesito mostrar su información cuando hago clic en ellos.
const approvedUsers = new ol.layer.Vector({
title: 'Usuarios encuestados',
source: new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: function (extent) {
return (
'https://know.ncn.pe/geoserver/wfs?service=WFS&' +
'version=1.1.0&request=GetFeature&typename=approvedUser&' +
'outputFormat=application/json&srsname=EPSG:3857&' +
'bbox=' +
extent.join(',') +
',EPSG:3857'
);
},
strategy: ol.loadingstrategy.bbox,
}),
style: new ol.style.Style({
image: new ol.style.Icon({
anchor: [0.5, 0.5],
size: [28, 19],
offset: [1, 1],
scale: 1,
src: 'assets/img/approvedUser.png',
}),
}),
});
Intenté obtener los datos de esta manera:
let clickeado = new ol.interaction.Select();
map.addInteraction(clickeado);
map.on('singleclick',function(e){
approvedUsers.once('precompose',function(e){
let seleccionado = clickeado.getFeatures();
readFeatures(seleccionado);
});
function readFeatures(features){
let dataFromWMS = features.item(0);
console.log(dataFromWMS.get('construido'));
}
});
Estos son los datos que tengo en GeoServer:
davy.ai
Para mostrar la información de los puntos al hacer clic, puedes utilizar la función ol.interaction.Select() para escuchar los eventos ‘singleclick’ en el mapa. Aquí tienes un ejemplo de fragmento de código:
Este código creará una interacción de selección para la capa approvedUsers y la añadirá al mapa. Cuando el usuario haga clic en un punto, se activará el evento ‘select’ y la(s) característica(s) seleccionada(s) estarán disponibles en la propiedad
target
del objeto de evento. A continuación, podrás recorrer las características seleccionadas y mostrar sus propiedades según sea necesario.