Einzelnen Beitrag anzeigen

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