Quantcast

Filter Encoding with Spatial Filter within WFS-Request

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Filter Encoding with Spatial Filter within WFS-Request

Fischer, Andreas
Dear MapServer-User,
I configured MapServer version 5.6.5 as WMS- and WFS-Server to offer information about land and properties. I use PostgreSQL/PostGIS (8.4.4/1.5.1) as datastore in this case. The spatial reference system is EPSG:25832 und the type of the geometry is MULTIPOLYGON. OS is Suse Linux Enterprise Server 11, Servicepack1.

WMS and WFS work fine until I use a spatial filter within the getFeature-Request of the WFS. In this case the response doesn't deliver any features. Nevertheless the number of features (e.g. numberOf Features='4') is correct. I tried this out with a couple of different boundingboxes and the known number of features that intersect these boundigboxes. In all cases I do not get any features back, but always the right number. So it seems that at least the intersection of the boundingbox and my data works correctly.

Please take a look at the following request and response that illustrate that problem:

Request:

http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getFeature&typename=folie001&SERVICE=WFS&VERSION=1.1.0&
Filter=<ogc:Filter>
                <Intersects>
                        <ogc:PropertyName>msGeometry</ogc:PropertyName>
                        <gml:Polygon srsName='EPSG:25832'>
                                <gml:outerBoundaryIs>
                                        <gml:LinearRing>
                                                <gml:coordinates>409350,5709890 409350,5709910 409370,5709910 409370,5709890 409350,5709890</gml:coordinates>
                                        </gml:LinearRing>
                                </gml:outerBoundaryIs>
                        </gml:Polygon>
                </Intersects>
        </ogc:Filter>


Response

<?xml version="1.0" encoding="ISO-8859-1" ?>
<wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xmlns:gml="http://www.opengis.net/gml" xmlns:wfs=http://www.opengis.net/wfs xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=folie001&OUTPUTFORMAT=text/xml; subtype=gml/3.1.1 http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="4">
       <gml:boundedBy>
       <gml:Envelope srsName="EPSG:25832">
  <gml:lowerCorner>-1.000000 -1.000000</gml:lowerCorner>
  <gml:upperCorner>-1.000000 -1.000000</gml:upperCorner>
  </gml:Envelope>
  </gml:boundedBy>
</wfs:FeatureCollection>


Indeed of this behavior the WFS returns features when I do not use a spatial filter. Therefore in my opinion the WFS should be configured right in general. To me the spatial filter seems to be the problem. Unfortunately I do not have any ideas what is going wrong.

For more information you can take a look at my MapFile and a part of the capabilities document returned from the WFS below:

MAP
        NAME "ku_testwfs"
        STATUS ON

        SIZE 400 520
        EXTENT 389965 5693582 420177 5732815
        UNITS METERS

        PROJECTION
                "init=epsg:25832"
        END

        SYMBOLSET "/mapserver/symbols/symbols_alk.sym"
        FONTSET "/mapserver/fonts/fonts.fnt"
        IMAGECOLOR 255 255 255

        WEB
                IMAGEPATH "/mapbender/mb262/http/tmp/"
                IMAGEURL "http://myserver/mapbender/tmp/"

                METADATA
                        "ows_onlineresource" "http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map"
                        "ows_title" "Liegenschaftskarte, Kreis Unna"
                        "ows_accessconstraints" "Nutzung nur für den Dienstgebrauch."
                        "ows_abstract" "Flurstücksfolie der Liegenschaftskarte."
                        "ows_contactperson" "Andreas Fischer"
                        "ows_contactorganization" "Kreis Unna"
                        "ows_contactposition" "Zentrale Datenverarbeitung, Geodatenmanagement"
                        "wms_srs" "EPSG:25832 EPSG:31462 EPSG:31463 EPSG:31466 EPSG:31467 EPSG:4326"
                        "wms_feature_info_mime_type" "text/html"
                        "wfs_srs" "EPSG:25832"
                END #METADATA  
        END #WEB
       
        LAYER
                NAME "folie001"
                STATUS ON
                TYPE POLYGON
                DUMP TRUE

                CONNECTIONTYPE postgis
                CONNECTION "user=dbuser password=dbpassword dbname=dbname host=dbhost port=dbport"
                DATA "the_geom from ku_view_folie001 USING UNIQUE objnr USING SRID=25832"
   
                METADATA
                        "ows_title" "Flurstücke"  
                        "wms_srs" "EPSG:25832 EPSG:31462 EPSG:31463 EPSG:31466 EPSG:31467 EPSG:4326"
                        "wms_feature_info_mime_type" "text/html"
                        "wfs_srs" "EPSG:25832"
                        "wfs_extent" "389965 5693582 420177 5732815"
                        "gml_include_items" "all"
                        "gml_featureid" "objnr"
                END #METADATA
       
                CLASS
                        NAME "Flurstücke"
                        STYLE
                                OUTLINECOLOR 0 0 0
                                WIDTH 1
                        END # STYLE
                END  # CLASS
        END #LAYER
END #MAPFILE

[...]
- < FeatureTypeList>
- < Operations>
  <Query />
  </Operations>
- <FeatureType>
  <Name>folie001</Name>
  <Title>Flurstücke</Title>
  <SRS>EPSG:25832</SRS>
  <LatLongBoundingBox minx="389965" miny="5.69358e+06" maxx="420177" maxy="5.73282e+06" />
 </FeatureType>
 </FeatureTypeList>
- <ogc:Filter_Capabilities>
- <ogc:Spatial_Capabilities>
- <ogc:Spatial_Operators>
  <ogc:Equals />
  <ogc:Disjoint />
  <ogc:Touches />
  <ogc:Within />
  <ogc:Overlaps />
  <ogc:Crosses />
  <ogc:Intersect />
  <ogc:Contains />
  <ogc:DWithin />
  <ogc:BBOX />
 </ogc:Spatial_Operators>
 </ogc:Spatial_Capabilities>
- <ogc:Scalar_Capabilities>
  <ogc:Logical_Operators />
- <ogc:Comparison_Operators>
  <ogc:Simple_Comparisons />
  <ogc:Like />
  <ogc:Between />
 </ogc:Comparison_Operators>
 </ogc:Scalar_Capabilities>
 </ogc:Filter_Capabilities>
 </WFS_Capabilities>

(The LatLongBoundingBox in this case is obviously not in units of LatLon but represent the boundingbox in the offered SRS 25832. This seems to be strange since thes doesn' t occur in the WMS-capabilities document. In this document the LatLongBoundingBox und the BoundingBox in the source SRS are both all right.)

I even tried different versions of MapServer and I discovered a slight difference with other versions. If I change my datasource from PostGIS to OGR/MapInfo Tab former versions of MapServer (5.4.2/5.2.3) provide features as well. But just in case of OGR/MapInfo Tab - not with PostGIS in use! As I have to use PostGIS I'm interested in any hints to solve this problem.
Therefore I would be glad to hear from you!

Thanks so far and best regards!
Andreas


Mit freundlichen Grüßen
Im Auftrag

Andreas Fischer

Kreis Unna - Der Landrat
Zentrale Datenverarbeitung
Friedrich-Ebert-Straße 17
59425 Unna

Fon 02 3 03 27-44 16
Fax 0 23 03 27-28 96
[hidden email]
www.kreis-unna.de


Diese E-Mail wurde beim Ausgang auf Viren geprueft. Wegen der
potentiellen Gefahr auf den Uebertragungswegen wird zu einer
Vireneingangskontrolle geraten. Eine Haftung für Virenfreiheit
wird ausgeschlossen.


_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Filter Encoding with Spatial Filter withinWFS-Request

Rahkonen Jukka (Tike)
Hi,

Your spatial filter is not WFS 1.1.0 filter because 1.1.0 is using gml3."coordinates" belong to gml2.  Have a try with WFS 1.0.0.

-Jukka Rahkonen-


-----Alkuperäinen viesti-----
Lähettäjä: [hidden email] puolesta: Fischer, Andreas
Lähetetty: ma 22.11.2010 19:44
Vastaanottaja: [hidden email]
Aihe: [mapserver-users] Filter Encoding with Spatial Filter withinWFS-Request
 
Dear MapServer-User,
I configured MapServer version 5.6.5 as WMS- and WFS-Server to offer information about land and properties. I use PostgreSQL/PostGIS (8.4.4/1.5.1) as datastore in this case. The spatial reference system is EPSG:25832 und the type of the geometry is MULTIPOLYGON. OS is Suse Linux Enterprise Server 11, Servicepack1.

WMS and WFS work fine until I use a spatial filter within the getFeature-Request of the WFS. In this case the response doesn't deliver any features. Nevertheless the number of features (e.g. numberOf Features='4') is correct. I tried this out with a couple of different boundingboxes and the known number of features that intersect these boundigboxes. In all cases I do not get any features back, but always the right number. So it seems that at least the intersection of the boundingbox and my data works correctly.

Please take a look at the following request and response that illustrate that problem:

Request:

http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getFeature&typename=folie001&SERVICE=WFS&VERSION=1.1.0&
Filter=<ogc:Filter>
                <Intersects>
                        <ogc:PropertyName>msGeometry</ogc:PropertyName>
                        <gml:Polygon srsName='EPSG:25832'>
                                <gml:outerBoundaryIs>
                                        <gml:LinearRing>
                                                <gml:coordinates>409350,5709890 409350,5709910 409370,5709910 409370,5709890 409350,5709890</gml:coordinates>
                                        </gml:LinearRing>
                                </gml:outerBoundaryIs>
                        </gml:Polygon>
                </Intersects>
        </ogc:Filter>


Response

<?xml version="1.0" encoding="ISO-8859-1" ?>
<wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xmlns:gml="http://www.opengis.net/gml" xmlns:wfs=http://www.opengis.net/wfs xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mapserver.gis.umn.edu/mapserver http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TYPENAME=folie001&OUTPUTFORMAT=text/xml; subtype=gml/3.1.1 http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" numberOfFeatures="4">
       <gml:boundedBy>
       <gml:Envelope srsName="EPSG:25832">
  <gml:lowerCorner>-1.000000 -1.000000</gml:lowerCorner>
  <gml:upperCorner>-1.000000 -1.000000</gml:upperCorner>
  </gml:Envelope>
  </gml:boundedBy>
</wfs:FeatureCollection>


Indeed of this behavior the WFS returns features when I do not use a spatial filter. Therefore in my opinion the WFS should be configured right in general. To me the spatial filter seems to be the problem. Unfortunately I do not have any ideas what is going wrong.

For more information you can take a look at my MapFile and a part of the capabilities document returned from the WFS below:

MAP
        NAME "ku_testwfs"
        STATUS ON

        SIZE 400 520
        EXTENT 389965 5693582 420177 5732815
        UNITS METERS

        PROJECTION
                "init=epsg:25832"
        END

        SYMBOLSET "/mapserver/symbols/symbols_alk.sym"
        FONTSET "/mapserver/fonts/fonts.fnt"
        IMAGECOLOR 255 255 255

        WEB
                IMAGEPATH "/mapbender/mb262/http/tmp/"
                IMAGEURL "http://myserver/mapbender/tmp/"

                METADATA
                        "ows_onlineresource" "http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map"
                        "ows_title" "Liegenschaftskarte, Kreis Unna"
                        "ows_accessconstraints" "Nutzung nur für den Dienstgebrauch."
                        "ows_abstract" "Flurstücksfolie der Liegenschaftskarte."
                        "ows_contactperson" "Andreas Fischer"
                        "ows_contactorganization" "Kreis Unna"
                        "ows_contactposition" "Zentrale Datenverarbeitung, Geodatenmanagement"
                        "wms_srs" "EPSG:25832 EPSG:31462 EPSG:31463 EPSG:31466 EPSG:31467 EPSG:4326"
                        "wms_feature_info_mime_type" "text/html"
                        "wfs_srs" "EPSG:25832"
                END #METADATA  
        END #WEB
       
        LAYER
                NAME "folie001"
                STATUS ON
                TYPE POLYGON
                DUMP TRUE

                CONNECTIONTYPE postgis
                CONNECTION "user=dbuser password=dbpassword dbname=dbname host=dbhost port=dbport"
                DATA "the_geom from ku_view_folie001 USING UNIQUE objnr USING SRID=25832"
   
                METADATA
                        "ows_title" "Flurstücke"  
                        "wms_srs" "EPSG:25832 EPSG:31462 EPSG:31463 EPSG:31466 EPSG:31467 EPSG:4326"
                        "wms_feature_info_mime_type" "text/html"
                        "wfs_srs" "EPSG:25832"
                        "wfs_extent" "389965 5693582 420177 5732815"
                        "gml_include_items" "all"
                        "gml_featureid" "objnr"
                END #METADATA
       
                CLASS
                        NAME "Flurstücke"
                        STYLE
                                OUTLINECOLOR 0 0 0
                                WIDTH 1
                        END # STYLE
                END  # CLASS
        END #LAYER
END #MAPFILE

[...]
- < FeatureTypeList>
- < Operations>
  <Query />
  </Operations>
- <FeatureType>
  <Name>folie001</Name>
  <Title>Flurstücke</Title>
  <SRS>EPSG:25832</SRS>
  <LatLongBoundingBox minx="389965" miny="5.69358e+06" maxx="420177" maxy="5.73282e+06" />
 </FeatureType>
 </FeatureTypeList>
- <ogc:Filter_Capabilities>
- <ogc:Spatial_Capabilities>
- <ogc:Spatial_Operators>
  <ogc:Equals />
  <ogc:Disjoint />
  <ogc:Touches />
  <ogc:Within />
  <ogc:Overlaps />
  <ogc:Crosses />
  <ogc:Intersect />
  <ogc:Contains />
  <ogc:DWithin />
  <ogc:BBOX />
 </ogc:Spatial_Operators>
 </ogc:Spatial_Capabilities>
- <ogc:Scalar_Capabilities>
  <ogc:Logical_Operators />
- <ogc:Comparison_Operators>
  <ogc:Simple_Comparisons />
  <ogc:Like />
  <ogc:Between />
 </ogc:Comparison_Operators>
 </ogc:Scalar_Capabilities>
 </ogc:Filter_Capabilities>
 </WFS_Capabilities>

(The LatLongBoundingBox in this case is obviously not in units of LatLon but represent the boundingbox in the offered SRS 25832. This seems to be strange since thes doesn' t occur in the WMS-capabilities document. In this document the LatLongBoundingBox und the BoundingBox in the source SRS are both all right.)

I even tried different versions of MapServer and I discovered a slight difference with other versions. If I change my datasource from PostGIS to OGR/MapInfo Tab former versions of MapServer (5.4.2/5.2.3) provide features as well. But just in case of OGR/MapInfo Tab - not with PostGIS in use! As I have to use PostGIS I'm interested in any hints to solve this problem.
Therefore I would be glad to hear from you!

Thanks so far and best regards!
Andreas


Mit freundlichen Grüßen
Im Auftrag

Andreas Fischer

Kreis Unna - Der Landrat
Zentrale Datenverarbeitung
Friedrich-Ebert-Straße 17
59425 Unna

Fon 02 3 03 27-44 16
Fax 0 23 03 27-28 96
[hidden email]
www.kreis-unna.de


Diese E-Mail wurde beim Ausgang auf Viren geprueft. Wegen der
potentiellen Gefahr auf den Uebertragungswegen wird zu einer
Vireneingangskontrolle geraten. Eine Haftung für Virenfreiheit
wird ausgeschlossen.


_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________
mapserver-users mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
Loading...