[Mapserver-DE] WFS-Problem mit räumlichem Filter

Fischer, Andreas Andreas.Fischer at kreis-unna.de
Fre Nov 19 15:31:23 CET 2010


Liebe MapServer-User,
ich setze MapServer in der Version 5.6.5 als WMS/WFS ein. Bei den Daten handelt es sich in diesem Fall um Flurstücke, die in ETRS89/UTM vorliegen und in einer PostgreSQL/PostGIS-Datenbank (8.4.4/1.5.1) gespeichert sind. Als Betriebssystem kommt Suse Linux Enterprise Server 11, Servicepack1 zum Einsatz.

Über einen getFeature-Request (WFS) möchte ich nun auf die Flurstücke zugreifen, wobei ein räumlicher Filter zum Einsatz kommen soll. Alternativ habe ich mit einer MapInfo-Relation im Übrigen auch eine andere Datenquelle ausprobiert. Das folgende Verhalten ist leider in beiden Fällen identisch.

Wenn ich den folgenden Request absetze, bekomme ich zwar die richtige Anzahl von "Schnittobjekten" im Response (numberOfFeatures=4) angezeigt, aber eben leider nicht die features ausgeliefert. Anstelle dessen bekommen ich nur eine Boundingbox mit offensichtlich ganz falschen Angaben.

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>


Interesseanterweise bekomme ich aber features zurück, z.B. wenn ich den obigen Request absetze und anstelle des räumlichen Filters die Anzahl der angefragten Objekte mit maxFeatures=4 begrenze. In diesem Fall ist die Rückgabe völlig in Ordnung. 

http://myserver/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getFeature&typename=folie001&SERVICE=WFS&VERSION=1.1.0&maxFeatures=4.

Außerdem habe ich den Dienst auch ohne räumlichen Filter mit MapInfo Professional als WFS-Client nutzen können. Damit sollte der WFS doch grundsätzlich richtig konfiguriert sein, oder?Mir scheint, als sei der räumliche Filter irgendwie nicht in Ordnung bzw. nicht vollständig.

Hat jemand von Euch oder Ihnen schon einmal die gleichen Probleme gehabt und gibt es dafür Lösungsansätze? Ich habe trotz intensiver Recherche im Internet leider nichts mehr gefunden, was ich noch ausprobieren könnte. Daher würde ich mich über neue Ideen und Anregungen zur Lösung dieses Problems sehr freuen.

Zur Information füge ich noch das MapFile und einen Auszug aus dem Capabilities-Dokument an. Merkwürdig im Capabilities-Dokument ist, dass die LatLonBoundingBox mit den Koordinaten und Einheiten des angebotenen SRS angegeben wird. Wenn ich auf die Angabe des wfs_extent verzichte, werden völlig falsche Koordinaten berechnet, die nicht einmal mehr mit der Ausdehnung meiner Daten zusammenhängen. Dies scheint aber ein bereits bekannter bug zu sein. Das Capabilities-Dokument für den WMS ist im Übrigen völlig in Ordnung. 

Der MapServer in den Versionen 5.4.2 und 5.2.3 verhält sich interessanterweise etwas anders. Genau die gleiche Anfrage mit dem räumlichen Filter (s.o.) wird unterstützt, wenn ich als Datenquelle im MapFile eine MapInfo-Relation (CONNECTIONTYPE OGR) eingebunden habe. Leider bekomme ich aber auch mit diesen Version keine features zurück, wenn ich als Datenquelle meine PostgreSQL/PostGIS-Datenbank angebe. Also auch eine andere Version ist keine Lösung  . . . :-(

Vielen Dank für Eure und Ihre Unterstützung!

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



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=localhost port=5432"
		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

[...]
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <	FeatureTypeList>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <	Operations>
  <Query /> 
  </Operations>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <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>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <ogc:Filter_Capabilities>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <ogc:Spatial_Capabilities>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <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>
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <ogc:Scalar_Capabilities>
  <ogc:Logical_Operators /> 
- <http://192.168.2.117/cgi-bin/mapserv?map=/mapserver/mapfiles/u218768/ku_testwfs.map&REQUEST=getCapabilities&SERVICE=WFS&VERSION=1.0.0>  <ogc:Comparison_Operators>
  <ogc:Simple_Comparisons /> 
  <ogc:Like /> 
  <ogc:Between /> 
 </ogc:Comparison_Operators>
 </ogc:Scalar_Capabilities>
 </ogc:Filter_Capabilities>
 </WFS_Capabilities>

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.


-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://freegis.org/pipermail/mapserver-de/attachments/20101119/bf236471/attachment-0001.html