[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