![]() |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
@p80286
Zitat:
Die Postleitzahlen für Leipzig (Straße-, Postfach- und Großkundenpostleitzahl) dürften z. B. von bis 04000 bis 04399 reichen. Wenn's was kosten darf, dann ist die Post mit ihren Daten sicherlich immer die erste und beste Quelle. |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Zitat:
Aber besser als gar nichts. |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Denkt daran, das es zu einer PLZ mehrere Orte geben kann.
Da sich PLZ nicht so oft ändern, wäre es sinnvoll, die Daten in der DB vorzuhalten. Ich halte nicht viel von diesem Stückelzeugs, wo man sich die Daten zusammensuchen muss. Ein Fehler, und sei es eine defekte Datei, und das ganze System spinnt, bzw. eben nicht und bombt irgendwann aus. Dann doch lieber alles in einer DB, wo die Integrität zudem gewährleistet ist. |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Zitat:
![]() Zitat:
|
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Zitat:
|
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Zitat:
![]() ![]() Meine Vermutung ist momentan: Die Datei DE.Tab enthält alle Orte mit ihrer "Hauptpostleitzahl", während die PLZ.tab alle weiteren Postleitzahlen zu den Orten enthält. Es wird also für eine Nachschlagtabelle eine Kombination aus diesen beiden Dateien benötigt. Schaut man sich alle Dateien unter o. g. Link an, so findet man (vermutlich) die vollständigen Scripte, um sich eine MySQL-Datenbank aufzubauen (einschließlich der Create-Table...-Statements) und kann sich damit seine eigene OpenGeoDB erstellen. |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
Danke an Euch alle, die sich mit mir den Kopf zerbrochen haben und für die, die eine ähnliche Lösung suchen.
Meine Lösung sieht nun folgendermaßen aus: Ich habe beschlossen die gesamte OpenGeoDB via Dump als eigene DB in mein mySQL zu nehmen. Mein select, um den Ort via PLZ zu suchen sieht folgendermaßen aus:
SQL-Code:
SELECT Ort.text_val
FROM opengeodb.geodb_textdata PLZ JOIN opengeodb.geodb_locations LPLZ ON (PLZ.loc_id = LPLZ.loc_id) JOIN opengeodb.geodb_hierarchies HPLZ ON (PLZ.loc_id = HPLZ.loc_id) JOIN opengeodb.geodb_textdata Ort ON (PLZ.loc_id = Ort.loc_id) JOIN opengeodb.geodb_textdata Land ON (HPLZ.id_lvl2 = Land.loc_id) WHERE PLZ.text_val = '<gesuchte PLZ>' AND Land.text_val = '<gesuchte Länderkennung>' // D(Deutschland), A(Österreich), CH(Schweiz), B(Belgien), FL(Lichtenstein) AND Ort.text_locale = 'de' // deutscher Name des Ortes AND PLZ.text_type = 500300000 // 500300000=PLZ AND LPLZ.loc_type = 100600000 // 100600000=Politische Gliederung (weil ich die ganzen Teilorte nicht haben mag) ansonsten // 100800000=Postleitzahlgebiet mit allen Teilorten AND Ort.text_type = 500100000 // 500100000=Ortsname AND Land.text_type = 500500000 // 500500000=Länderkennung ORDER BY Ort.text_val; |
AW: Ort anhand der PLZ füllen - ?OpenGeoDB?
OpenGeoDB ist immer so ein Thema. Theoretisch steht alles drin, aber teilweise auch einfach doppelt und manchmal in der falschen Hierarchieebene. Mein Favorit ist der Eintrag "überhprüft das eigentlich irgendwer".
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz