[mapserver-users] Issue in using MapServer WFS Filter
Kajod Sharma
kajod4u at yahoo.com
Wed Apr 26 06:42:44 PDT 2017
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20170426/44c4749a/attachment.htm>
More information about the MapServer-users
mailing list