Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

how to use filter in wfs getfeature request url ? #235

Closed
curious-boy opened this issue Mar 20, 2014 · 2 comments
Closed

how to use filter in wfs getfeature request url ? #235

curious-boy opened this issue Mar 20, 2014 · 2 comments

Comments

@curious-boy
Copy link

i can get feature by featureid and bbox.
example:
1 by featureid
http://127.0.0.1:8088/services/wfs?service=WFS&request=GetFeature&version=1.1.0&TypeName=topp:hztl&featureid=HZTL_0
2 by bbox
http://127.0.0.1:8088/services/wfs?service=WFS&request=GetFeature&version=1.1.0&TypeName=topp:hztl&BBOX=120.200000,30.3,120.080000,30.500000,EPSG:4326
but i can't use other filter (Disjoint Intersects Crosses Within DWithin and so on) correctly.
Are they supported by deegree ?
Thank you for your time!

@curious-boy
Copy link
Author

if they were supported in deegree?
Can you give me example url ?
Many thanks

@MrSnyder
Copy link
Contributor

Yes, this is supported as defined in the WFS specification (otherwise deegree WFS wouldn't be compliant). The filter can be specified via the FILTER parameter in a KVP GetFeature request.

There are two common caveats:

  • The XML of the filter expression must be URL-encoded. You may use this web-page for this [1]
  • The XML must be a well-formed and schema-valid Filter element, with properly bound namespaces

Example Filter:

<Filter xmlns="http://www.opengis.net/ogc">
  <And>
    <BBOX>
      <PropertyName>app:geometry</PropertyName>
      <Envelope xmlns="http://www.opengis.net/gml">
        <coord>
          <X>432604.0</X>
          <Y>4647889.0</Y>
        </coord>
        <coord>
          <X>5647889.0</X>
          <Y>5647889.0</Y>
        </coord>
      </Envelope>
    </BBOX>
    <Or>
      <PropertyIsEqualTo>
        <PropertyName>OBJECTID</PropertyName>
        <Literal>446</Literal>
      </PropertyIsEqualTo>
      <PropertyIsGreaterThan>
        <PropertyName>SHAPE_LEN</PropertyName>
        <Literal>10000</Literal>
      </PropertyIsGreaterThan>
    </Or>
  </And>
</Filter>

URL-encoded XML:

%3CFilter%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0A%20%20%3CAnd%3E%0A%20%20%20%20%3CBBOX%3E%0A%20%20%20%20%20%20%3CPropertyName%3Eapp%3Ageometry%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%3CEnvelope%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fgml%22%3E%0A%20%20%20%20%20%20%20%20%3Ccoord%3E%0A%20%20%20%20%20%20%20%20%20%20%3CX%3E432604.0%3C%2FX%3E%0A%20%20%20%20%20%20%20%20%20%20%3CY%3E4647889.0%3C%2FY%3E%0A%20%20%20%20%20%20%20%20%3C%2Fcoord%3E%0A%20%20%20%20%20%20%20%20%3Ccoord%3E%0A%20%20%20%20%20%20%20%20%20%20%3CX%3E5647889.0%3C%2FX%3E%0A%20%20%20%20%20%20%20%20%20%20%3CY%3E5647889.0%3C%2FY%3E%0A%20%20%20%20%20%20%20%20%3C%2Fcoord%3E%0A%20%20%20%20%20%20%3C%2FEnvelope%3E%0A%20%20%20%20%3C%2FBBOX%3E%0A%20%20%20%20%3COr%3E%0A%20%20%20%20%20%20%3CPropertyIsEqualTo%3E%0A%20%20%20%20%20%20%20%20%3CPropertyName%3EOBJECTID%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%20%20%3CLiteral%3E446%3C%2FLiteral%3E%0A%20%20%20%20%20%20%3C%2FPropertyIsEqualTo%3E%0A%20%20%20%20%20%20%3CPropertyIsGreaterThan%3E%0A%20%20%20%20%20%20%20%20%3CPropertyName%3ESHAPE_LEN%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%20%20%3CLiteral%3E10000%3C%2FLiteral%3E%0A%20%20%20%20%20%20%3C%2FPropertyIsGreaterThan%3E%0A%20%20%20%20%3C%2FOr%3E%0A%20%20%3C%2FAnd%3E%0A%3C%2FFilter%3E

Full KVP-request:

http://deegree3-demo.deegree.org/utah-workspace/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=SGID100_RailroadsDLG100&FILTER=%3CFilter%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0A%20%20%3CAnd%3E%0A%20%20%20%20%3CBBOX%3E%0A%20%20%20%20%20%20%3CPropertyName%3Eapp%3Ageometry%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%3CEnvelope%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fgml%22%3E%0A%20%20%20%20%20%20%20%20%3Ccoord%3E%0A%20%20%20%20%20%20%20%20%20%20%3CX%3E432604.0%3C%2FX%3E%0A%20%20%20%20%20%20%20%20%20%20%3CY%3E4647889.0%3C%2FY%3E%0A%20%20%20%20%20%20%20%20%3C%2Fcoord%3E%0A%20%20%20%20%20%20%20%20%3Ccoord%3E%0A%20%20%20%20%20%20%20%20%20%20%3CX%3E5647889.0%3C%2FX%3E%0A%20%20%20%20%20%20%20%20%20%20%3CY%3E5647889.0%3C%2FY%3E%0A%20%20%20%20%20%20%20%20%3C%2Fcoord%3E%0A%20%20%20%20%20%20%3C%2FEnvelope%3E%0A%20%20%20%20%3C%2FBBOX%3E%0A%20%20%20%20%3COr%3E%0A%20%20%20%20%20%20%3CPropertyIsEqualTo%3E%0A%20%20%20%20%20%20%20%20%3CPropertyName%3EOBJECTID%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%20%20%3CLiteral%3E446%3C%2FLiteral%3E%0A%20%20%20%20%20%20%3C%2FPropertyIsEqualTo%3E%0A%20%20%20%20%20%20%3CPropertyIsGreaterThan%3E%0A%20%20%20%20%20%20%20%20%3CPropertyName%3ESHAPE_LEN%3C%2FPropertyName%3E%0A%20%20%20%20%20%20%20%20%3CLiteral%3E10000%3C%2FLiteral%3E%0A%20%20%20%20%20%20%3C%2FPropertyIsGreaterThan%3E%0A%20%20%20%20%3C%2FOr%3E%0A%20%20%3C%2FAnd%3E%0A%3C%2FFilter%3E

[1] http://meyerweb.com/eric/tools/dencoder/

lgoltz added a commit to lat-lon/deegree3 that referenced this issue Jan 28, 2017
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Dec 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants