Estoy ejecutando un servicio de mapeo local simple basado en la pila PostGIS / GeoServer / OpenLayers.
Siguiendo el tutorial de opengeo , he vinculado los eventos de clic en OpenLayers a la llamada WMS GetFeatureInfo usando:
map.events.register('click', map, function (e) {
var url = "http://localhost:1979/geoserver/wms"
+ "?REQUEST=GetFeatureInfo"
+ "&EXCEPTIONS=application/vnd.ogc.se_xml"
+ "&BBOX=" + map.getExtent().toBBOX()
+ "&X=" + e.xy.x
+ "&Y=" + e.xy.y
+ "&INFO_FORMAT=text/html"
+ "&QUERY_LAYERS=MYDATA:MYLAYER"
+ "&LAYERS=MYDATA:MYLAYER"
+ "&FEATURE_COUNT=5"
+ "&SRS=EPSG:3857"
+ "&STYLES="
+ "&WIDTH=" + map.size.w
+ "&HEIGHT=" + map.size.h;
window.open(url,
"getfeatureinfo",
"location=0,status=0,scrollbars=1,width=800,height=125"
);
});
He usado las plantillas de FreeMarker de GeoServer para formatear la respuesta correctamente. El problema que tengo es que la respuesta que obtengo devuelve todos los campos de la capa.
¿Hay alguna manera de seleccionar los que son relevantes para el usuario?