Für mein Projekte lagerverkauf-finden.de und auch ein weiteres Projekt, das sich gerade noch in der Planung befindet, benötige ich eine Autovervollständigung für Ortsnamen. Der Benutzer soll also etwas eintippen und bekommt dann eine Auswahl an möglichen Ortsnamen geliefert. Das ganze soll so ähnlich wie die Vorschlagsfunktion bei der Google-Suche funktionieren.
Das erste Problem war natürlich: wo bekomme ich die Daten dafür her?
Bei meiner Suche im Netz bin ich auf zwei Quellen für diese Daten gestoßen geonames und opengeodb. Bei beiden Quellen werden die Daten regelmäßig aktualisiert und machen einen ordentlichen Eindruck. Beide bieten die wichtigsten Informationen. Für meine Anforderung sind das Ortsname, Postleitzahlen(en) und Geokoordinaten. Beide Anbieter liefern die Daten in einem praktischen CSV Format, das sehr einfach verarbeitet werden kann.
Vielleicht fragt sich der ein oder andere warum ich hier Postleitzahlen schreibe. Das liegt einfach daran, dass große Orte wie z.B. Berlin, mehrerer Postleitzahlen haben.
Geokoordinaten werden für diese Funktionalität eigentlich nicht benötigt. Ich finde es trotzdem sehr hilfreich, da dadurch automatisch Umkreissuchen gemacht werden können. Dadurch kann man sehr gut auf Null-Treffer Ergebnisse reagieren und dem Benutzer evtl. etwas Arbeit abnehmen.
Ich für meinen Teil habe mich für die Daten der opengeodb entschieden. Um zu erklären wieso, hier ein kleines Beispiel.
Die Postleitzahl von Bochum ist 44787 und die Postleitzahl von Wattenscheid ist 44866. Wattenscheid ist aber ein Gemeindeteil von Bochum.
Hier liegt der Unterschied zwischen den beiden Datenquellen. Bei geonames findet man unter Postleitzahl 44787 Bochum und unter der Postleitzahl 44866 auch Bochum. Bei opengeodb findet man unter 44787 Bochum und unter 44866 Wattenscheid.
Beides ist eine korrekter Angabe. Da Wattenscheid jetzt aber mein Wohnort ist, möchte ich in meiner Lösung, das auch Gemeindeteile angezeigt werden können.
Das war der einfache Grund, weshalb ich mich für die Daten von opengeodb entschieden habe. Ich möchte aber noch einmal erwähnen, dass jeder selbst aufgrund seiner Anforderungen entscheiden muss, welche Daten für ihn die richtigen sind. Beide Quellen liefern sehr hochwertige Daten und ich habe im Netz schon häufig Ortsauswahlen gesehen, die Daten wie die von geonames verwenden.
Das war also der erste Teil der Reihe Autovervollständigung für Orte. Demnächst gibt es den zweiten Teil und dann geht es auch schon ans eingemachte.
Der Sourcecode wird dann in meinem Repository verfügbar sein.

Keine verwandten Themen.