[Mapserver-DE] Keine Werte beim getResult bei EDBS-Daten
Michael Moeller
drecoll at michael-moeller.de
Mit Jun 29 17:35:00 CEST 2005
Hallo Mapserver-DE Liste!
Wir setzten den UMN Mapserver über MapScript mit ALK-Daten (Shapefiles
konvertiert in eine PostGIS-Datenbank) und eingebundenen Rasterbildern
ein. Nach der Query-Abfrage der ALK-Daten (z.B. mittels vom Rosa
Java-Applet übermittelter Koordinaten) werden auch ALB-Daten ausgegeben.
Diese ALB-Daten wurden mit dem WLDGE2SQL-Konverter ebenfalls in die
PostGIS-Datenbank importiert.
Nun sollen die ALK-Daten aus EDBS-Daten generiert werden, die mittels
des EDBS2WKT-Konverters [1] in der Datenbank importiert worden sind. Die
reine Darstellung der EDBS-ALK-Daten mit dem Mapserver funktioniert
hierbei hervorragend, deutlich besser als die Darstellung der aus den
Shapefiles generierten Daten.
Ein großes Problem stellt für uns der Zugriff auf die EDBS-Daten über
einen Query und der danach erfolgenden Abfrage der ALB-Daten dar: Der
Wert, der über den Befehl getResult(0) ausgegeben wird, ist bei
EDBS-Daten immer "0", womit man die Shapes nicht wirklich identifizieren
kann.
getNumResults(...) liefert hingegen eine Anzahl an Shapes, die bei den
meisten Testversuchen richtig war. Hierbei wurden die Abfragen u.a. auch
nach "2.5 Backwards Compatibility" von Sean Gilles [2] entwickelt. Bei
Abfragen nach "2.4 Resulting Features" erhalten wir mit den Mapservern
4.2.3, 4.4.1 und 4.6.0 (jeweils mit den angepassten maxsimagesize,
maxclasses und maxsymbols kompiliert) die Fehlermeldungen "Fatal error:
Call to undefined function: getresults()" bzw. "...getfeatures()".
Die alten -aus Shapefiles generierten- Daten liefern beim getResult(0)
den Wert der OID des selektierten Flurstücks, so daß in weiteren
Unteranfragen das Shape und die zugehörigen ALB-Daten ermittelt werden
können. Dieses funktioniert auch, wenn die Daten in demselben Projekt
mit den nicht funktionierenden EDBS-Daten dargestellt werden. Diese
alten Daten werden mit einem einfachen Data "the_geom from f001"
eingebunden.
Die EDBS-Daten hingegen werden mit dem Data-String "the_geom from
(select * from alkobj_e_fla) as foo using unique objnr using
SRID=31467". Demnach müßten per getResult(0) die Objektnummer des Shapes
ausgegeben werden. Dieses ist leider nicht der Fall. Eine OID existiert
in der selektierten Tabelle und den anderen alkobj_e_* nicht, da hier
die Objektnummer der eindeutige Schlüssel ist. Gegenüber der OID enthält
die Objektnummer auch alphanumerische Zeichen (Typ: character varying(7)).
Ein zu Testzwecken angelegte WorkAround-Tabelle mit OID’s (Kopie der
Tabelle alkobj_e_fla) liefert jedoch beim getResult(0) auch nur den Wert
"0".
Hat jemand schon einmal ähnliche Probleme gehabt und/oder hat eine Idee,
wo nach dem Fehler gesucht werden muß? Ist die Annahme richtig, daß
getResult(0) den "using unique"-Wert zurückliefert? Haben wir bei der
Konfiguration unseren MapServers/MapScripts was vergessen/falsch
eingestellt? Einen kleinen Schalter übersehen? Vielen Dank für Ihre
Hilfe im voraus!
[1] http://62.153.231.87/alk/edbs2wkt/
[2] http://zcologia.com/mapserver/querying-howto
Mit freundlichen Grüßen,
Michael Möller
--
____________________________________________________________________
Michael Moeller
telefon (040) 70 70 43 77 | telefax (089) 14 88 - 203 683
eMail mail at michael-moeller.de | icq 22093649 / 79012343
homepage http://www.michael-moeller.de/
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)