[mapserver-users] Issue in using MapServer WFS Filter
Jeff McKenna
jmckenna at gatewaygeomatics.com
Wed Apr 26 08:09:34 PDT 2017
Hi Kajod,
If you are using PostGIS, then I would set the 'wfs_extent' metadata at
the layer level of the mapfile (it looks like you tried that, with an
odd 'wfs_boundingbox' parameter): please review the syntax of the
wfs_extent parameter at
http://www.mapserver.org/ogc/wfs_server.html#layer-object
Then, next step is always to execute a GetCapabilities request and go
through that response and make sure there are no "WARNING" messages, and
make the changes in the mapfile to remove those warnings if necessary...
-jeff
--
Jeff McKenna
MapServer Consulting and Training Services
http://www.gatewaygeomatics.com/
On 2017-04-26 10:42 AM, Kajod Sharma wrote:
> Hi,
>
> Greetings!
>
> I hope this is a right platform to discuss my query regarding FILTER
> applied on MapServer WFS.
>
> I'm new in this area and exploring some features of MapServer. I want to
> use GetFeature request of WFS to get features applied on any location on
> map. I'm using "MapServer version 7.0.4 (MS4W 3.2.1)" and trying to
> apply filter "Contains" for it.
>
> I can see two problems when it applies Filter query on PostGIS:
>
> 1. It looks it adds an extra default geospatial filter in it while
> making a query to PostGIS. This default spatial filter is not stopping
> to return any result from PostGIS. Is there any way to exclude this
> default filter?
> 2. It seems Contains coordinates are not transformed properly according
> to SRS of data in PostGIS.
>
> I've tries with different projection in map file and request message
> with no success.
>
> Supporting data to give your input on my queries:
>
> WFS request
> *************************
> Formatted Version:
>
> http://localhost/cgi-bin/mapserv.exe?
> service=WFS&
> map=C:/Data/MapServerWFSSample.map&
> request=GetFeature&
> version=2.0.0&
> typeName=SampleLayer&
> FILTER=<Filter xmlns="http://www.opengis.net/ogc"
> xmlns:gml="http://www.opengis.net/gml"
> xmlns:ms="http://mapserver.gis.umn.edu/mapserver">
> <*Contains*>
> <PropertyName>wkb_Geometry</PropertyName>
> <gml:Point srsName="urn:ogc:def:crs:EPSG::4326">
> <gml:coordinates>0.112034,53.567972</gml:coordinates>
> </gml:Point>
> </*Contains*>
> </Filter>
> *************************
>
> PostGIS query [Could see in log file]:
> *************************
> msPostGISLayerWhichShapes query: select
> "Attribute1","Attribute2","Attribute3",encode(ST_AsBinary(ST_Force2D("wkb_geometry"),'NDR'),'hex')
> as geom from SampleGeoDataTable where */wkb_geometry &&
> ST_GeomFromText('POLYGON((-0.999462804873474
> -1.00102606014116,-0.999462804873474
> -1.00102606014116,-0.999462804873474
> -1.00102606014116,-0.999462804873474
> -1.00102606014116,-0.999462804873474
> -1.00102606014116))',find_srid('','SampleGeoDataTable','wkb_geometry'))/* and
> (st_contains(wkb_geometry,ST_GeomFromText('POINT
> (*/7853690.3631838141000000 -5506204.5232773330000000/*)')) = TRUE)
> *************************
>
> Similar WFS query to GeoServer works perfectly.
>
> It would be very helpful if someone can help me on it. Thanks a lot in
> advance.
>
> Map File looks like:
>
> **************************************************
> MAP
> NAME "Sample_WMS"
> CONFIG "PROJ_LIB" "C:\ms4w\proj\nad"
> CONFIG "MS_ERRORFILE" "C:/Data/ms_tmp/ms_error.txt"
> CONFIG "CPL_DEBUG" "ON"
> CONFIG "PROJ_DEBUG" "ON"
> STATUS ON
> PROJECTION
> "init=epsg:27700"
> END
>
> WEB
> IMAGEPATH "C:/Data/ms_tmp/"
> IMAGEURL "/ms_tmp/"
> METADATA
> "wfs_enable_request" "*"
> "wfs_title" "My Global Map WFS Server"
> "wfs_srs" "EPSG:4326 EPSG:900913 EPSG:27700"
> "wfs_boundingbox" "EPSG:27700 749.099975585938 -90036.5
> 660460.875 1227306.5"
> END
> END
>
> LAYER
> NAME "SampleLayer"
> STATUS DEFAULT
> TYPE POLYGON
> PROJECTION
> "init=epsg:27700"
> END
> CONNECTIONTYPE POSTGIS
> CONNECTION "host=localhost port=5432 dbname=SampleGeoDataTable
> user=postgres password=hahaha"
> DATA "wkb_geometry from SampleLayer"
> CLASS
> STYLE
> COLOR 0 100 255
> OUTLINECOLOR 0 0 0
> END
> END
>
> METADATA
> "wfs_enable_request" "*"
> "wfs_title" "Sample WFS"
> "wfs_srs" "EPSG:27700 EPSG:4326 EPSG:900913"
> "wfs_boundingbox" "EPSG:27700 749.099975585938 -90036.5
> 660460.875 1227306.5"
> "gml_include_items" "all"
> END
> END
> END
> **************************************************
>
> Regards,
> Kajod
>
>
More information about the MapServer-users
mailing list