WFS GetFeature – How to Filter WFS GetFeature Results

feature-filtergetfeaturewfs

I am new to GIS. I am trying to work out how I can return a limited set of results for the WFS GetFeature query.

For instance, what is the URL to only return results where the ADD_POSTCODE is 3350 ? How do I even know I can query on ADD_POSTCODE versus the other data returned?

See http://services.land.vic.gov.au/catalogue/publicproxy/guest/dv_geoserver/wfs?service=wfs&request=GetFeature&typeName=datavic:VMPROP_PROPERTY_ADDRESS

<wfs:member>
<datavic:VMPROP_PROPERTY_ADDRESS gml:id="VMPROP_PROPERTY_ADDRESS.fid-ecced5e_17afd09cd9b_5e06">
<datavic:PROP_PFI>50292997</datavic:PROP_PFI>
<datavic:PROP_LGA_CODE>302</datavic:PROP_LGA_CODE>
<datavic:PROP_PROPNUM>2031609</datavic:PROP_PROPNUM>
<datavic:PROP_STATUS>A</datavic:PROP_STATUS>
<datavic:PROP_UFI>90502792</datavic:PROP_UFI>
<datavic:PROP_UFI_CREATED>2000-03-23T14:55:41Z</datavic:PROP_UFI_CREATED>
<datavic:PROPV_PFI>3264781</datavic:PROPV_PFI>
<datavic:PROPV_GRAPHIC_TYPE>P</datavic:PROPV_GRAPHIC_TYPE>
<datavic:ADD_PFI>51288123</datavic:ADD_PFI>
<datavic:ADD_EZI_ADDRESS>1/18A TALBOT STREET N BALLARAT CENTRAL 3350</datavic:ADD_EZI_ADDRESS>
<datavic:ADD_IS_PRIMARY>Y</datavic:ADD_IS_PRIMARY>
<datavic:ADD_STATE>VIC</datavic:ADD_STATE>
<datavic:ADD_POSTCODE>3350</datavic:ADD_POSTCODE>
<datavic:ADD_LOCALITY_NAME>BALLARAT CENTRAL</datavic:ADD_LOCALITY_NAME>
<datavic:ADD_NUM_ROAD_ADDRESS>1/18A TALBOT STREET N</datavic:ADD_NUM_ROAD_ADDRESS>
<datavic:ADD_UFI_CREATED>2010-11-16T06:42:37Z</datavic:ADD_UFI_CREATED>
<datavic:ADD_LABEL_ADDRESS>Y</datavic:ADD_LABEL_ADDRESS>
<datavic:ADD_HOUSE_NUMBER_1>18</datavic:ADD_HOUSE_NUMBER_1>
<datavic:ADD_ROAD_NAME>TALBOT</datavic:ADD_ROAD_NAME>
<datavic:ADD_ROAD_TYPE>STREET</datavic:ADD_ROAD_TYPE>
<datavic:ADD_ROAD_SUFFIX>N</datavic:ADD_ROAD_SUFFIX>
<datavic:ADD_BLG_UNIT_TYPE>UNIT</datavic:ADD_BLG_UNIT_TYPE>
<datavic:ADD_NUM_ADDRESS>1/18A</datavic:ADD_NUM_ADDRESS>
<datavic:SHAPE>
<gml:MultiSurface srsDimension="2" srsName="urn:ogc:def:crs:EPSG::4283">
<gml:surfaceMember>
<gml:Polygon srsDimension="2">
<gml:exterior>
<gml:LinearRing>
<gml:posList>-37.55884259 143.84385041 -37.55885219 143.84394062 -37.55879233 143.84395169 -37.55878595 143.84389218 -37.55876173 143.84368693 -37.55875241 143.84361651 -37.55874023 143.84351047 -37.55873136 143.84343743 -37.55872455 143.84338679 -37.55879185 143.84337436 -37.55880871 143.84341315 -37.55883363 143.84363398 -37.55882924 143.84363489 -37.55883433 143.84368118 -37.55881649 143.84368436 -37.55883158 143.84382423 -37.55884259 143.84385041</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</gml:surfaceMember>
</gml:MultiSurface>
</datavic:SHAPE>
</datavic:VMPROP_PROPERTY_ADDRESS>
</wfs:member>

Best Answer

You can try using cql_filter and it's working e.g http://services.land.vic.gov.au/catalogue/publicproxy/guest/dv_geoserver/wfs?service=wfs&request=GetFeature&typeName=datavic:VMPROP_PROPERTY_ADDRESS&cql_filter=datavic%3AADD_POSTCODE%3D3350

Response quite slow but related to the server it seems.

You will also need to paginate as limit is 5000 features from this server

Related Question