[mapserver-users] Issue in using MapServer WFS Filter
Kajod Sharma
kajod4u at yahoo.com
Fri May 5 07:54:10 PDT 2017
Hi Jukka Rahkonen,
Thanks a lot for your help and doing this exercise. I really appreciate it, it's really nice group to get/share inputs on any issue on MapServer.
Well I've found the solution now. I was missing EXTENT parameter in map file. After adding it according to source data, it started working. Thanks a lot Jukka.
Just want to mention a point here, it still has a default spatial filter in PostGIS query, but this time with correct coordinates according to EXTENT defined in map file.
Thanks again to all. Have a nice weekend!
Cheers!
Regards,
Kajod
From: Rahkonen Jukka (MML) <jukka.rahkonen at maanmittauslaitos.fi>
To: Jeff McKenna <jmckenna at gatewaygeomatics.com>; "mapserver-users at lists.osgeo.org" <mapserver-users at lists.osgeo.org>; Kajod Sharma <kajod4u at yahoo.com>
Sent: Thursday, 4 May 2017 8:02 PM
Subject: Re: [mapserver-users] Issue in using MapServer WFS Filter
#yiv6196364185 --P{margin-top:0;margin-bottom:0;}#yiv6196364185 Hi,
I saved the states.shp file from the demo data directory that installs with GeoServer into PostGIS.
This query finds Kansas:
http://localhost:8060/cgi-bin/mapserv.exe?service=WFS&map=c:\ms4w_data\apps\states_pg.map&request=GetFeature&version=2.0.0&typeNames=ms:states_pg&FILTER=%3CFilter%3E%3CContains%3E%3CPropertyName%3EmsGeometry%3C/PropertyName%3E%3Cgml:Point%20srsName=%22urn:ogc:def:crs:EPSG::4326%22%3E%3Cgml:coordinates%3E40,-100%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Contains%3E%3C/Filter%3E
The SQL does contain the && comparison but is is not harmful.
My mapfile:
MAP
NAME "testname"
SIZE 800 800
EXTENT -180 -90 180 90
UNITS DD
IMAGECOLOR 20 250 250
SHAPEPATH "c:\ms4w\tmp"
IMAGETYPE "png"
OUTPUTFORMAT
NAME "geojson"
DRIVER "OGR/GEOJSON"
MIMETYPE "application/json; subtype=geojson"
FORMATOPTION "STORAGE=stream"
FORMATOPTION "FORM=SIMPLE"
END
WEB
METADATA
"ows_enable_request" "*"
"wms_bbox_extended" "true"
"wfs_return_srs_as_urn" "true"
"ows_srs" "CRS:84 EPSG:4326 EPSG:32634 EPSG:3857 EPSG:2923"
"wms_title" "MS 6.1.1 WMS from Spatialite"
"wfs_title" "MS 6.1.1 WFS from Spatialite"
"wfs_abstract" "ööää"
"wfs_onlineresource" "http://localhost:8060/cgi-bin/mapserv.exe?map=c:\ms4w\apps\wms-wfs.map"
# "wfs_use_default_extent_for_getfeature" "no"
END
END
DEBUG 10
CONFIG "PROJ_LIB" "C:/ms4w/proj/nad"
CONFIG "CPL_DEBUG" "ON"
CONFIG "SQLITE_LIST_ALL_TABLES" "TRUE"
CONFIG "MS_ERRORFILE" "c:/ms4w/tmp/debug.txt"
PROJECTION
"init=epsg:4326"
END
LAYER
NAME "states_pg"
STATUS DEFAULT
CONNECTIONTYPE POSTGIS
CONNECTION "dbname=xxx user=yyy"
DATA "geom from states using unique gid using srid=4326"
PROCESSING "CLOSE_CONNECTION=DEFER"
TYPE POLYGON
STATUS ON
PROJECTION
"init=epsg:4326"
END
OPACITY 50
METADATA
"ows_title" "states_pg" ##REQUIRED
"wfs_srs" "EPSG:4326" ## REQUIRED
"gml_include_items" "all" ## Optional (serves all attributes for layer)
# "gml_exclude_items" "STATE_NAME"
"gml_featureid" "gid" ## REQUIRED
"gml_types" "auto"
"wfs_getfeature_formatlist" "geojson"
END
CLASS
STYLE
COLOR 100 200 100
OUTLINECOLOR 0 0 0
END
LABEL
COLOR 150 150 150
OUTLINECOLOR 255 255 255
TYPE bitmap
SIZE small
POSITION UL
#TEXT "[STATE_FIPS]"
PARTIALS FALSE
END
LABEL
COLOR 150 150 150
OUTLINECOLOR 255 255 255
TYPE bitmap
SIZE small
POSITION LL
#TEXT "[STATE_NAME]"
PARTIALS FALSE
END
END
END
END
-Jukka Rahkonen-
<<<<< trimmed message >>>>>
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20170505/16262dd6/attachment.htm>
More information about the MapServer-users
mailing list