From perl at rainboxx.de Mon Feb 19 11:09:55 2007 From: perl at rainboxx.de (Matthias Dietrich) Date: Mon, 19 Feb 2007 11:09:55 +0100 Subject: [opengeodb] OpenGeoDB und Referenzen Message-ID: <45D97773.4010203@rainboxx.de> Hallo *, ich möchte die OpenGeoDB gerne in ein privates Projekt einbinden. Dazu nutze ich PostgreSQL und DBIx::Class als ORM. Das Problem: DBIx::Class benötigt gescheite Referenzen. Diese sind in dem aktuellen Schema nicht vorhanden und, soweit ich weiß, fast unmöglich zu realisieren (korrigiert mich, wenn ich falsch liege!). Nun meine Frage an euch: hat schon jemand vor diesem Problem gestanden und es in irgendeiner Form gelöst? Ich würde mich für jeden Hinweis freuen :). Schönen Tag! From nikomar at gmx.net Mon Feb 19 22:48:43 2007 From: nikomar at gmx.net (Ingo Wiarda) Date: Mon, 19 Feb 2007 22:48:43 +0100 Subject: [opengeodb] OpenGeoDB und Referenzen In-Reply-To: <45D97773.4010203@rainboxx.de> References: <45D97773.4010203@rainboxx.de> Message-ID: <200702192248.43903.nikomar@gmx.net> Hallo Matthias, Am Montag 19 Februar 2007 11:09:55 schrieb Matthias Dietrich: > Das Problem: DBIx::Class benötigt gescheite Referenzen. Diese sind in > dem aktuellen Schema nicht vorhanden und, soweit ich weiß, fast > unmöglich zu realisieren (korrigiert mich, wenn ich falsch liege!). Möchtest du die ganze OpenGeoDB per DBIx::Class abbilden oder nur die PLZ-Bereiche? Was für Referenzen fehlen dir denn? Ich habe mich vor einiger Zeit damit beschäftigt und damals angefangen, ein Modul Geo::OpenGeoDB zu schreiben, das die Abhängigkeiten mit Class::DBI abbildet (wobei ich mittlerweile auch DBIx::Class verwenden würde). Über v0.01 ist das nie hinausgekommen, daher kann es natürlich sein, daß ich deswegen nicht auf die Probleme gestoßen bin, die du vor Augen hast... Gruß, Ingo Als Illustration für eine mögliche Abbildung der Datenbank in Class::DBI: (das kann in der aktuellen Version der DB natürlich ganz anders aussehen) package Geo::OpenGeoDB::Locations; our $VERSION="0.001"; use base qw(Geo::OpenGeoDB::DBI Geo::OpenGeoDB); use strict; Geo::OpenGeoDB::Locations->table('geodb_locations'); Geo::OpenGeoDB::Locations->columns( 'Primary' => qw(loc_id) ); Geo::OpenGeoDB::Locations->columns( 'All' => qw(loc_id loc_type) ); Geo::OpenGeoDB::Locations->has_many('hierarchies' => 'Geo::OpenGeoDB::Hierarchies', 'loc_id'); Geo::OpenGeoDB::Locations->has_many('textdata' => 'Geo::OpenGeoDB::Textdata', 'loc_id'); Geo::OpenGeoDB::Locations->has_many('intdata' => 'Geo::OpenGeoDB::Intdata', 'loc_id'); Geo::OpenGeoDB::Locations->has_many('floatdata' => 'Geo::OpenGeoDB::Floatdata', 'loc_id'); Geo::OpenGeoDB::Locations->has_many('coordinates' => 'Geo::OpenGeoDB::Coordinates', 'loc_id'); 1: From perl at rainboxx.de Mon Feb 19 23:48:32 2007 From: perl at rainboxx.de (Matthias Dietrich) Date: Mon, 19 Feb 2007 23:48:32 +0100 Subject: [opengeodb] OpenGeoDB und Referenzen In-Reply-To: <200702192248.43903.nikomar@gmx.net> References: <45D97773.4010203@rainboxx.de> <200702192248.43903.nikomar@gmx.net> Message-ID: <45DA2940.4070000@rainboxx.de> Hallo Ingo, > Möchtest du die ganze OpenGeoDB per DBIx::Class abbilden oder nur die > PLZ-Bereiche? nein, ich möchte die komplette Struktur abbilden, um _alles_ damit machen zu können, was einmal anfallen könnte. > Was für Referenzen fehlen dir denn? Die Referenzen von der Tabelle geodb_hierarchies zu geodb_textdata. Diese möchte ich durch PostgreSQL abbilden, um danach DBIx::Class::Schema::Loader die Datenbank dumpen zu lassen. Dadurch habe ich die komplette Struktur in DBIx::Class und kann jeden Schweinkram damit machen. > Über v0.01 ist das nie hinausgekommen, daher kann es natürlich sein, daß ich > deswegen nicht auf die Probleme gestoßen bin, die du vor Augen hast... > > Als Illustration für eine mögliche Abbildung der Datenbank in Class::DBI: > (das kann in der aktuellen Version der DB natürlich ganz anders aussehen) > > package Geo::OpenGeoDB::Locations; > [...] Hast du auch die geodb_hierarchies abgebildet? Wie greifst du auf Daten zu? Ist das Package auf dem CPAN? Ich habe allerdings eben bemerkt, dass ich in meiner Beispiel-Abfrage nach allen Bundesländern Deutschlands einen Fehler habe. Das muss ich nochmal überdenken und werde das morgen früh machen. Vielleicht klärt sich dann doch noch einiges :). Allerdings habe ich gestern mittels PgAdmin3 versucht, Unique Constraints auf die Tabelle geodb_textdata zu legen. Das hat nicht so richtig hingehauen, da ich noch nicht genau wusste, mit welchen Spalten ein eindeutigen Datensatz dargestellt wird. Kann mir das jemand sagen? Vielleicht kann mir auch jemand die Abfrage nach allen Bundesländern Deutschlands schicken. Vielleicht verstehe ich dann ja die Tabellen ein wenig mehr und kann mir ein paar restliche Dinge zusammenreimen. Heute klappt das irgendwie nicht mehr wirklich. Bin schon etwas müde. Bis morgen... From perl at rainboxx.de Tue Feb 20 00:31:18 2007 From: perl at rainboxx.de (Matthias Dietrich) Date: Tue, 20 Feb 2007 00:31:18 +0100 Subject: [opengeodb] OpenGeoDB und Referenzen In-Reply-To: <45DA2940.4070000@rainboxx.de> References: <45D97773.4010203@rainboxx.de> <200702192248.43903.nikomar@gmx.net> <45DA2940.4070000@rainboxx.de> Message-ID: <45DA3346.10203@rainboxx.de> Hi Ingo, ich habe mir die DB Struktur nochmal durch den Kopf gehen lassen. Habe keine Ruhe gefunden :). Dabei ist mir aufgefallen, dass ich die Struktur irgendwie falsch aufgenommen habe - so konnte das ja gar nicht funktionieren. Nun klappt es aber auf reiner SQL-Ebene mit dem Abfragen der Bundesländer. Ich denke, nun sind weitere Abfragen kein Problem mehr. Trotzdem bleibt das Problem mit DBIx::Class. Dazu definiere ich morgen erstmal die Referenzen von geodb_locations auf die anderen Tabellen und schaue mir das im Zusammenhang von DBIx::Class nochmal genauer an. Du kannst mir ja trotzdem mal Beispiele schicken, vielleicht kann ja den ein oder anderen Fehler von vorne herein vermeiden :). So, nun aber wirklich eine Gute Nacht! Matthias From taney at web.de Sat Feb 24 15:13:53 2007 From: taney at web.de (Taner Ayaydin) Date: Sat, 24 Feb 2007 15:13:53 +0100 Subject: [opengeodb] Undefined Class Name In-Reply-To: <000d01c757f9$133a2780$14b2a8c0@samsung> References: <001001c74ed4$68e9bb10$14b2a8c0@samsung><45D0EA23.9090508@geohunting.de> <000d01c757f9$133a2780$14b2a8c0@samsung> Message-ID: <003901c7581e$044cbe70$14b2a8c0@samsung> > Hallo Liste, > > location.php > /geo/Map.php > /geo/Geo.php > /geo/Object.php > /geo/helpers/e00.php > /geo/helpes/map.php > /geo/sources (DB.php, DB.Nima.php, DB_OpenGeoDB.php...) > > Vorher hatte ich versucht, die ganzen PEAR-Sachen in httpdocs einzufügen, > hab es aber jetzt alles unter usr/share/pear installiert. In GEO.php war > auch damals require_once 'Geo/sources/DB.php' anstatt require_once > 'DB.php'. > Da er die DB.php ja nicht mehr von /geo/sources/.. abzapft, wird das > Verzeichnis geo/sources in httpdocs wahrscheinlich nicht mehr nötig sein > ne? > > In location.php kann ich nun einen Ort eingeben, diese sagt dann, dass ein > Ort/Treffer gefunden werden konnte, ohne drunter die Ergebnisse > aufzulisten. > Wenn ich nun http://xxx/karte/location.php?id=19255 aufrufe, erhalte ich > folgende Meldung: > Da ich leider kein PHP kann und zurzeit .JSP mache, wäre lieb, wenn mir > jemand weiterhelfen könnte: > > Warning: imagecreate(): Invalid image dimensions in > /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on line 54 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagecolorallocate(): supplied argument is not a valid Image > resource in /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on > line 148 > > Warning: imagepng(): supplied argument is not a valid Image resource in > /home/httpd/vhosts/xxx/httpdocs/karte/Geo/helpers/map.php on line 137 > > > In Zeile 148 sieht die map.php so aus: > > function color($r, $g, $b) { > return imagecolorallocate($this->img, $r, $g, $b); > > Zeile 137 > > function dump($fn) { > return imagepng($this->img, $fn); > > Zeile 54 > > $this->img = imagecreate($this->size_x, $this->size_y); > > In http://xxx/karte/location.php?id=19255 wurde auch ein Bild eingebunden, > dass es garnicht gibt. Den Ordner maps gibt es auch nicht. > > http://xxx/karte/maps/19255.png > > Grüße Hallo noch mal, habe am Ende den Fehler halbwegs gefunden. Habe einen Ordner /maps angelegt mit einer D.png. Jetzt bringt er keine Fehlermeldung mehr, jedoch ist kein Punkt auf der Karte und keine Angaben zur Stadt vorhanden: Verwaltungsgliederung Staat Koordinaten L?ge / Breite / Zusatzinformationen Liegt es eventuell daran, dass wir nicht die neue opengeodb-0.2.4d-UTF8-mysql drauf haben, sondern noch die alte mit geodb_adm0, geodb_adm1 und so. Grüße -------------- nächster Teil -------------- Ein Dateianhang mit HTML-Daten wurde abgetrennt... URL: http://lists.phpbar.de/pipermail/opengeodb/attachments/20070224/7e67da65/attachment-0001.html