PostGIS / GeoServer / OpenLayers 스택을 기반으로 간단한 로컬 매핑 서비스를 실행하고 있습니다.
opengeo 튜토리얼에 따라 OpenLayers의 클릭 이벤트를 다음을 사용하여 WMS GetFeatureInfo 호출에 연결했습니다.
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"
);
});
GeoServer의 FreeMarker 템플릿 을 사용하여 응답의 형식을 올바르게 지정했습니다. 내가 가진 문제는 내가 얻은 응답이 레이어에서 모든 필드를 반환한다는 것입니다.
사용자와 관련된 것을 선택하는 방법이 있습니까?