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

WFS gml:polygon geometry or polygon bounding box not passed to Oracle SQL query #4513

Closed
Lunieme opened this issue Oct 26, 2012 · 2 comments
Closed

Comments

@Lunieme
Copy link

Lunieme commented Oct 26, 2012

I noticed that when using wfs gml:Polygon filter requests, polygon geometry is not passed to Oracle SQL query. Mapserver simply send default layer extent to Oracle. Which significantly increases the response time of Oracle on big layers.

Mapserver should send the polygon geometry (or perhaps the bounding box of the polygon geometry) in the SQL query.

The following request :
http://myserve/mapserv?map=/mymap.map&version=1.1.0&service=WFS&REQUEST=GetFeature&TYPENAME=ms:mylayer&Filter= Geometrygml:Polygongml:outerBoundaryIsgml:LinearRinggml:coordinates772507,70056 889500,70056 889500,66553 772507,66553 772507,70056/gml:coordinates/gml:LinearRing/gml:outerBoundaryIs/gml:Polygon

Generates the following Oracle query:
SELECT UNIQUE_ID, rownum, GEOM FROM ( SELECT GEOM, UNIQUE_ID FROM MYLAYER ) WHERE SDO_FILTER( GEOM, MDSYS.SDO_GEOMETRY(2003, :srid, NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3),:ordinates ),'querytype=window') = 'TRUE'

where ordinates = default extent of the layer

I would be great if Mapserver could send the polygon geometry or the bounding box of the polygon geometry in the SQL query.

@sdlime
Copy link
Member

sdlime commented Oct 26, 2012

This is a known limitation. The problem is handling more complex queries across the suite of drivers we support. Only a few can handle things natively and even then it's not consistent. Presently WFS queries are transformed into a standard representation (SQL-like tokens) that MapServer itself can handle. What's needed is a next step where drivers can take this and represent it natively. I'm hoping this can happen for the next release but it will be tedious work. I will probably make sense to handle the common use cases like this right away and then bail back to MapServer on the edge cases.

Steve

@jratike80
Copy link

We have been waiting for 11 years, I am becoming suspicious.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants