Tôi đang chạy dịch vụ ánh xạ cục bộ đơn giản dựa trên ngăn xếp PostGIS / GeoServer / OpenLayers.
Theo hướng dẫn của opengeo Tôi đã gắn các sự kiện nhấp chuột trong OpenLayers vào cuộc gọi WMS GetFeatureInfo bằng cách sử dụng:
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"
);
});
Tôi đã sử dụng các mẫu FreeMarker của GeoServer để định dạng phản hồi chính xác. Vấn đề tôi có là phản hồi tôi nhận được trả về tất cả các trường từ lớp.
Có cách nào để chọn những cái có liên quan đến người dùng không?