AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ort anhand der PLZ füllen - ?OpenGeoDB?

Ein Thema von baumina · begonnen am 11. Sep 2013 · letzter Beitrag vom 13. Sep 2013
Antwort Antwort
Seite 2 von 2     12   
nahpets
(Gast)

n/a Beiträge
 
#11

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 11. Sep 2013, 18:38
@p80286
Da die Beziehung zwischen PLZ und Ort gesucht wird, sollte es ausreichend sein. Soweit ich weiß gibt es für Großkunden und Postfächer feste Bereiche. Falls also die PLZ für die Wohnort Bestimmung genutzt werden soll, könnten sie ausreichen oder aber eine Warnung "keine echte PLZ" generieren. Je nach dem was man braucht. ggf. wäre es in der Vergleichstabelle sinnvoll einen Typen für die PLZ zu speichern 1=StraßenPLZ 2=Postfachplz 3=GroßkundenPLZ.
Prinzipiell hast Du da Recht, eigentlich müsste es reichen, nach Postleitzahlbereichen zu suchen.

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.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#12

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 11. Sep 2013, 19:15

Wenn die Tabelle dauerhaft unter http://fa-technik.adfc.de/code/opengeodb/PLZ.tab (oder wo sonst auch immer) zu erreichen sein sollte, ließe sich das Update per tIDHTTP... automatisieren.
Dort stehen aber nicht alle Orte drin. Meinen Ort kann ich unter meiner PLZ nicht finden. Es wird ein größerer Ort ca. 15 km entfernt gezeigt.
Aber besser als gar nichts.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#13

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 11. Sep 2013, 21:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 12. Sep 2013, 07:17
Dort stehen aber nicht alle Orte drin. Meinen Ort kann ich unter meiner PLZ nicht finden. Es wird ein größerer Ort ca. 15 km entfernt gezeigt.
Aber besser als gar nichts.
Also wenn man unter bearbeiten der Datenbestände sucht, ist dein Ort bestimmt dabei. Irgendwie scheint die PLZ.tab der OpenGeoDB alleine nicht ausreichend zu sein.

Wenn's was kosten darf, dann ist die Post mit ihren Daten sicherlich immer die erste und beste Quelle.
Ich befürchte kosten darfs nix
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#15

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 12. Sep 2013, 07:36
Dort stehen aber nicht alle Orte drin. Meinen Ort kann ich unter meiner PLZ nicht finden. Es wird ein größerer Ort ca. 15 km entfernt gezeigt.
Aber besser als gar nichts.
Also wenn man unter bearbeiten der Datenbestände sucht, ist dein Ort bestimmt dabei. Irgendwie scheint die PLZ.tab der OpenGeoDB alleine nicht ausreichend zu sein.
Ja, unter dem Ort kann ich dann meine PLZ finden.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#16

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 12. Sep 2013, 11:49
Also wenn man unter bearbeiten der Datenbestände sucht, ist dein Ort bestimmt dabei. Irgendwie scheint die PLZ.tab der OpenGeoDB alleine nicht ausreichend zu sein.
Wenn man diesem Link folgt, sieht man unten, unter den Eingabemöglichkeiten, einen Link Dateien. Dem kann man folgen und bekommt eine Liste der verfügbaren Dateien, dies sind einige Datendateien und etliche SQL-Scripte. Unter Anderem findet man dort die DE.tab. Diese enthält auch den "vermissten" Ort. Sie hat aktuell den Stand vom 8.9.2013. Allerdings scheint sie unter Postleitzahlenkriterien nicht vollständig zu sein. Mein Wohnort hat mehrere Postleitzahlen, in dieser Datei ist aber nur eine dieser Postleitzahlen zu finden.
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.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 12. Sep 2013, 13:31
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;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (13. Sep 2013 um 11:15 Uhr)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#18

AW: Ort anhand der PLZ füllen - ?OpenGeoDB?

  Alt 13. Sep 2013, 11:45
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".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz