Saya menjalankan layanan pemetaan lokal sederhana berdasarkan tumpukan PostGIS / GeoServer / OpenLayers.
Mengikuti tutorial pembuka Saya telah mengaitkan acara klik di OpenLayers ke panggilan WMS GetFeatureInfo menggunakan:
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"
);
});
Saya telah menggunakan template FreeMarker GeoServer untuk memformat respons dengan benar. Masalah yang saya miliki adalah bahwa respons yang saya dapatkan mengembalikan semua bidang dari layer.
Apakah ada cara untuk memilih yang relevan bagi pengguna?