Ich verwende einen einfachen lokalen Zuordnungsdienst basierend auf dem PostGIS / GeoServer / OpenLayers-Stack.
Nach dem Opengeo- Tutorial habe ich Klickereignisse in OpenLayers mit dem WMS GetFeatureInfo-Aufruf verknüpft.
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"
);
});
Ich habe die FreeMarker- Vorlagen von GeoServer verwendet, um die Antwort korrekt zu formatieren. Das Problem, das ich habe, ist, dass die Antwort, die ich erhalte, alle Felder von der Ebene zurückgibt.
Gibt es eine Möglichkeit, diejenigen auszuwählen, die für den Benutzer relevant sind?