[mapserver-users] Filter Encoding with Spatial Filter withinWFS-Request

Rahkonen Jukka Jukka.Rahkonen at mmmtike.fi
Mon Nov 22 13:44:32 EST 2010


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ä: mapserver-users-bounces at lists.osgeo.org puolesta: Fischer, Andreas
Lähetetty: ma 22.11.2010 19:44
Vastaanottaja: mapserver-users at lists.osgeo.org
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
andreas.fischer at kreis-unna.de
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
mapserver-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list