Viac

Odosielate parametre filtra do GeoServer WFS prostredníctvom adresy URL?


Pokúšam sa použiť funkciu CURL PHP na načítanie informácií geoJSON z inštancie GeoServer. Robím to skôr pomocou premenných adresy URL, než aby som sa pokúšal zostaviť úplnú požiadavku GetFeature xml.

Chcel by som však získať podmnožinu výsledkov na základe obsahu niektorých polí vlastností.

Aj keď môžem získať všetky výsledky pomocou tejto adresy URL:

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

môžem tiež obmedziť výsledky na „Kde hodnota PÁČI LIKE“ alebo „pole = hodnota“?

Strávil som hodinu prehliadaním dokumentácie Geoserver/ECQL a nič z toho neuvádza „pripojiť funkcie k vašej adrese URL v tomto formáte“. V dôsledku toho nie som si istý, či je možné použiť na vykonanie týchto úloh premenné adresy URL, ale niektorí ľudia naznačujú, že áno.

Môže niekto pomôcť s jasným príkladom fungujúceho filtra pomocou WFS GeoServera s parametrami adresy URL?


Predpokladám, že ste čítali tento http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html

Tu je niekoľko ukážkových požiadaviek, ktoré odosielajú dotazy na demo server Boundless, ale ktoré by mali fungovať podobne ako na vašom vlastnom serveri, ak máte nainštalovanú demo vrstvu topp: states.

Vyberte, kde je STATE_NAME Illinois

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 '

Všimnite si použitia štandardného parametra WFS PROPERTYNAME, ktorý sa tu používa na skrátenie výstupu. Ak chcete všetky atribúty, ponechajte voľno, alebo napíšte zoznam na výber niektorých atribútov.

Potom vyberte štáty s názvom začínajúcim na „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'

Všimnite si, že porovnávací reťazec je „I%“, ale aspoň v mojom prehliadači (Firefox 31.0) musí mať kódovanie URL a jeho hodnota je „I%25“. Toto nie je uvedené v návode na CQL. Ak vaše vlastné filtre zlyhajú, môže to znamenať, že musíte vo filtri kódovať aj niektoré ďalšie znaky.

Ak potrebujete geojson, pridajte & 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