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.