URL을 통해 필터 매개 변수를 GeoServer WFS로 전달 하시겠습니까?


17

GeoServer 인스턴스에서 geoJSON 정보를 가져 오기 위해 PHP의 CURL 함수를 사용하려고합니다. 전체 XML GetFeature 요청을 구성하는 대신 URL 변수를 사용 하여이 작업을 수행하고 있습니다.

그러나 속성 필드의 내용 중 일부를 기반으로 결과의 하위 집합을 얻을 수 있기를 원합니다.

따라서이 URL을 사용하여 모든 결과를 얻을 수 있지만

http://www.myURL.com/geoserver/namespace/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=layername&outputFormat=json&BBOX=1,2,3,4

결과를 "어디 필드처럼 값"또는 "필드 = 값"으로 제한 할 수 있습니까?

Geoserver / ECQL 문서를 통해 1 시간 동안 트롤링을했으며 "이 형식으로 URL에 함수를 추가합니다"라는 내용은 명확하지 않습니다. 결과적으로 URL 변수를 사용하여 이러한 작업을 수행 할 수 있는지 확실하지 않지만 일부 사람들은이를 제안하는 것 같습니다.

URL 매개 변수와 함께 GeoServer의 WFS를 사용하여 필터 작동에 대한 명확한 예를 누구나 도울 수 있습니까?

답변:


25

http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html을 읽고 있다고 가정합니다.

다음은 Boundless의 데모 서버에 대한 쿼리를 전송하지만 데모 계층 topp : states가 설치된 경우 자체 서버와 유사하게 작동하는 샘플 요청입니다.

STATE_NAME이 (가) 일리노이 인 곳을 선택하십시오

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME='Illinois'

여기에서 출력 단축에 사용되는 표준 WFS 매개 변수 PROPERTYNAME을 사용하십시오. 모든 속성을 원하면 그대로 두거나 일부 속성을 선택하기위한 목록을 작성하십시오.

그런 다음 이름이 "I"로 시작하는 상태를 선택하십시오.

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'

비교 문자열은 'I %'이지만 적어도 내 브라우저 (Firefox 31.0)에서는 URL로 인코딩되어야하며 'I % 25'가됩니다. CQL 튜토리얼에서는 언급되지 않았습니다. 자체 필터가 실패하면 필터의 다른 문자도 URL로 인코딩해야 함을 의미 할 수 있습니다.

geojson이 필요한 경우 & outputformat = application / json을 추가하십시오.

http://demo.opengeo.org/geoserver/wfs?service=wfs&version=1.0.0&request=getfeature&typename=topp:states&PROPERTYNAME=STATE_NAME&CQL_FILTER=STATE_NAME LIKE 'I%25'&outputformat=application/json

10
이 문제로 어려움을 겪고있는 다른 사람은 형식을 사용하여 여러 CQL 필터를 URL에 추가 할 수도 &CQL_FILTER=field=value AND field=value AND field=value있지만 공백이 인코딩되도록 "AND"를 URL 인코딩해야합니다. 이것이 다른 사람의 시간을 절약하는 데 도움이되기를 바랍니다.
Ambulare

지오 서버 튜토리얼은 매우 유용한 답변입니다. XY 좌표가있는 피쳐를 반환하도록 쿼리를 어떻게 확장 하시겠습니까? 아니면 경계 상자 안에있는 모든 기능이 있습니까?
Luffydude
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.