[Mapserver-DE] getFeature: Feature ausserhalb der BBox
Christian Wilmes
C.Wilmes at gmx.de
Die Mai 9 16:15:40 CEST 2006
Hallo,
habe einen WFS erstellt welcher ueber OGR auf eine PostgreSQL-DB (kein
PostGIS) zugreift. Die Freude ueber die gelungene getFeature-Abfrage waehrte
allerdings nicht lange, da ich feststellen musste, dass die zurueckgegebenen
Feature nicht in die von mir angegebene BBox passen. Habe die Sache mit
verschiedenen BBoxen ausprobiert und eine Regelmaessigkeit festgestellt. Die
Anzahl der zurueckgegebenen Feature ist immer korrekt nur werden immer die
Feature zurueckgegeben die in der Tabelle oben stehen, ganz egal ob sie nun
in die BBox passen oder nicht. Auch noch kurios ist, dass die Angaben bei
zur "wirklichen BBox" oben im GML-File korrekt sind. In dem Beispiel unten
werden also korrekterweise 4 Feature zurueckgegeben nur sind es nicht die 4
Richtigen, sondern einfach die ersten 4 aus der Tabelle.
Hier mal ein beispielhafter
Aufruf:
http://localhost/cgi-bin/mapserv.exe?&REQUEST=GetFeature&VERSION=1.0.0&SERVICE=WFS&TYPENAME=myWFS&&BBox=9.98,7.98,10,8
...und das Ergebnis:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <wfs:FeatureCollection xmlns:ms="http://mapserver.gis.umn.edu/mapserver"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengeospatial.net/wfs/1.0.0/WFS-basic.xsd
http://mapserver.gis.umn.edu/mapserver
http://127.0.0.1/cgi-bin/mapserv.exe?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=myWFS&OUTPUTFORMAT=XMLSCHEMA">
- <gml:boundedBy>
- <gml:Box srsName="EPSG:4326">
<gml:coordinates>9.980700,7.984220 9.997500,7.995010</gml:coordinates>
</gml:Box>
</gml:boundedBy>
- <gml:featureMember>
- <ms:myWFS>
- <gml:boundedBy>
- <gml:Box srsName="EPSG:4326">
<gml:coordinates>9.682230,7.653260 9.682230,7.653260</gml:coordinates>
</gml:Box>
</gml:boundedBy>
- <ms:msGeometry>
- <gml:Point srsName="EPSG:4326">
<gml:coordinates>9.682230,7.653260</gml:coordinates>
</gml:Point>
</ms:msGeometry>
<ms:id>16</ms:id>
</ms:myWFS>
</gml:featureMember>
- <gml:featureMember>
- <ms:myWFS>
- <gml:boundedBy>
- <gml:Box srsName="EPSG:4326">
<gml:coordinates>9.768800,7.835870 9.768800,7.835870</gml:coordinates>
</gml:Box>
</gml:boundedBy>
- <ms:msGeometry>
- <gml:Point srsName="EPSG:4326">
<gml:coordinates>9.768800,7.835870</gml:coordinates>
</gml:Point>
</ms:msGeometry>
<ms:id>17</ms:id>
</ms:myWFS>
</gml:featureMember>
- <gml:featureMember>
- <ms:myWFS>
- <gml:boundedBy>
- <gml:Box srsName="EPSG:4326">
<gml:coordinates>9.296530,7.426330 9.296530,7.426330</gml:coordinates>
</gml:Box>
</gml:boundedBy>
- <ms:msGeometry>
- <gml:Point srsName="EPSG:4326">
<gml:coordinates>9.296530,7.426330</gml:coordinates>
</gml:Point>
</ms:msGeometry>
<ms:id>18</ms:id>
</ms:myWFS>
</gml:featureMember>
- <gml:featureMember>
- <ms:myWFS>
- <gml:boundedBy>
- <gml:Box srsName="EPSG:4326">
<gml:coordinates>9.111500,7.645390 9.111500,7.645390</gml:coordinates>
</gml:Box>
</gml:boundedBy>
- <ms:msGeometry>
- <gml:Point srsName="EPSG:4326">
<gml:coordinates>9.111500,7.645390</gml:coordinates>
</gml:Point>
</ms:msGeometry>
<ms:id>20</ms:id>
</ms:myWFS>
</gml:featureMember>
</wfs:FeatureCollection>
....und dann vll ein kleiner Auszug aus dem Mapscript:
LAYER
NAME myWFS
DEBUG ON
METADATA
"wfs_title" "myWFS" ## REQUIRED
"gml_include_items" "id"
END
TYPE POINT
STATUS ON
CONNECTIONTYPE OGR
CONNECTION "test.ovf"
DATA "feature"
PROJECTION
"init=EPSG:4326"
END
DUMP TRUE
END # Layer
Mit der ovf-Datei welche fuer die Anbindung einer nicht-spatial DB benoetigt
wird sollte soweit eigentlich alles in Ordnung sein, da ein WMS welcher auf
die selben Daten zugreift mit ihr einwandfrei funktioniert.
Bin momentan echt etwas ratlos wo der Fehler liegen koennte und bin daher
fuer jede Hilfe sehr dankbar. Vielleicht hat ja schon mal wer nen aehnliches
Problem gehabt oder hat eine Idee wo die Ursache liegen koennte.
Gruesse
Christian
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)