¿Crear un servicio web de geocodificación / diccionario geográfico?

14

Me gustaría escribir un servicio web de geocodificación para genealogía en Java. Debido a que es para la genealogía, no necesito bajar al nivel de la calle. Solo necesito ir al condado.

En cuanto a los datos de genealogía, los nombres mal escritos son muy comunes. Las personas también usan muchas abreviaturas no estándar. Por ejemplo, para el condado de Baltimore podría verse así:

  1. Baltimore
  2. Condado de Baltimore
  3. Baltimore Co
  4. Baltimore Cty
Jay Askren
fuente

Respuestas:

10

No creo que esta pregunta sea explícitamente geográfica, porque solo le interesan los nombres, por lo que es posible que desee hacerla en Stack Overflow . Puede responder a su pregunta con dos datos: el estado y el nombre del condado corregido. Para realizar las correcciones, es probable que desee utilizar la distancia de Levenshtein ( ejemplo e implementación de Java ) para hacer coincidir los datos difusos con los valores corregidos.

scw
fuente
+1 Eso es probablemente cierto. Levenshtein parece un buen lugar para comenzar y parece que Postgres incluso lo admite. Gracias.
Jay Askren
Creo que combinar la distancia de Levenshtein con los datos de Geonames ( geonames.org ) puede funcionar para mí. Gracias.
Jay Askren
5

Un servicio de geocodificación necesita datos de geometría geográfica, un diccionario geográfico asociado (para manejar las alternativas de nombres y nombres) y una interfaz de usuario (para mediar en la búsqueda). Para un geocodificador inverso, deberá agregar un validador de topología. Para Java, el JTS Topology Suite de código abierto sería la opción natural: http://www.vividsolutions.com/jts/jtshome.htm

Las geometrías del condado para los Estados Unidos se pueden encontrar en el Censo: http://www.census.gov/geo/www/cob/co2000.html

Para comenzar con el diccionario geográfico, la Junta de Nombres Geográficos de EE. UU. Tiene una base de datos: http://geonames.usgs.gov/

La parte difícil es crear una base de datos de diccionario geográfico sólida y algoritmos de tejido que toleren coincidencias de búsqueda aproximadas.

Glennon
fuente
Los algoritmos son lo que estoy buscando.
Jay Askren
Las consultas sobre algoritmos de similitud semántica pueden tener más encuestados en el sitio principal de stackoverflow.
glennon
1

Google tiene una buena API para geocodificar , si puede seguir sus términos de servicio. La demostración básica se puede encontrar aquí .

El uso de su servicio está sujeto a algunas limitaciones, pero el resultado es intuitivo, rápido, preciso y familiar para la mayoría de los usuarios. Le permitirá concentrarse en desarrollar la parte de genealogía de su servicio.

Adam Matan
fuente
Realmente me gustaría alojar todo en casa y no depender de una API externa.
Jay Askren
Entonces, ¿está buscando una base de datos de geocodificación con licencia de código abierto?
Adam Matan