[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-0001.html>


More information about the mapserver-users mailing list