[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)