Erstellen eines Geokodierungs- / Gazetteer-Webdienstes?


14

Ich möchte einen Geokodierungs-Webdienst für die Genealogie in Java schreiben. Da es sich um Genealogie handelt, muss ich nicht auf die Straße gehen. Ich muss nur in die Grafschaft gehen.

Bei Genealogie-Daten sind falsch geschriebene Namen sehr häufig. Die Leute verwenden auch viele nicht-Standard-Abkürzungen. Zum Beispiel für Baltimore County könnte so aussehen:

  1. Baltimore
  2. Baltimore County
  3. Baltimore Co
  4. Baltimore Cty

Antworten:


10

Ich glaube nicht, dass diese Frage explizit geografisch ist, da Sie nur an Namen interessiert sind. Vielleicht möchten Sie sie bei Stack Overflow stellen . Sie könnten Ihre Frage mit zwei Informationen beantworten: dem Bundesstaat und dem korrigierten Landkreisnamen. Um die Korrekturen durchzuführen, möchten Sie wahrscheinlich die Levenshtein-Distanz ( Beispiel & Java-Implementierung ) verwenden, um die Fuzzy-Daten mit den korrigierten Werten abzugleichen.


+1 Das stimmt wahrscheinlich. Levenshtein scheint ein guter Ausgangspunkt zu sein und Postgres scheint es sogar zu unterstützen. Vielen Dank.
— Jay Askren

Ich denke, die Kombination der Levenshtein-Distanz mit den Daten von Geonames ( geonames.org ) könnte für mich funktionieren. Vielen Dank.
— Jay Askren

5

Ein Geokodierungsdienst benötigt geografische Geometriedaten, einen zugehörigen Gazetteer (zur Bearbeitung von Namen und Namensalternativen) und eine Benutzeroberfläche (zur Vermittlung der Suche). Für einen Reverse-Geocoder müssen Sie einen Topologie-Validator hinzufügen. Für Java bietet sich die Open Source JTS Topology Suite an: http://www.vividsolutions.com/jts/jtshome.htm

Grafschaftsgeometrien für die Vereinigten Staaten können bei der Volkszählung gefunden werden: http://www.census.gov/geo/www/cob/co2000.html

Um mit dem Gazetteer zu beginnen, verfügt das US-amerikanische Board on Geographic Names über eine Datenbank: http://geonames.usgs.gov/

Das Erstellen einer soliden Gazetteer-Datenbank und von Webalgorithmen, die ungefähre Suchtreffer tolerieren, sind der schwierige Teil.


Die Algorithmen sind das, wonach ich suche.
— Jay Askren

Anfragen zu semantischen Ähnlichkeitsalgorithmen können mehr Befragte auf der Haupt-Stackoverflow-Site haben.
— Glennon


1

Google hat eine nette API für die Geokodierung , wenn Sie deren Nutzungsbedingungen einhalten können. Eine grundlegende Demo finden Sie hier .

Die Verwendung ihres Dienstes unterliegt gewissen Einschränkungen, aber das Ergebnis ist für die meisten Benutzer intuitiv, schnell, genau und vertraut. Sie können sich auf die Entwicklung des Genealogie-Teils Ihres Dienstes konzentrieren.


Ich würde wirklich gerne alles im Haus hosten und nicht von einer externen API abhängig sein.
— Jay Askren

Sie suchen also eine Open Source-lizenzierte Geokodierungs-DB?
— Adam Matan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.