Geocodificación a una forma en lugar de un punto
El proyecto en el que estoy trabajando actualmente es Find-A-Record . Estamos geocodificando colecciones de registros genealógicos y almacenándolos en un índice espacial (explore nuestro blog si desea obtener más información). Las búsquedas se basan en una forma. Devolvemos colecciones que se cruzan o están contenidas dentro del área de búsqueda.
Durante los primeros estados de desarrollo, utilizamos geonames para geocodificar colecciones hasta cierto punto. Esto funciona bien para colecciones que están asociadas con niveles administrativos más bajos, como ciudades, pueblos y aldeas. Sin embargo, realmente se descompone cuando obtienes el nivel de condado, estado y país.
El censo estadounidense de 1940 está asociado con los Estados Unidos y se le asignaría un punto en el norte de Kansas. Cualquier consulta dentro de los Estados Unidos que no esté cerca de ese punto no devolverá el Censo de los Estados Unidos de 1940.
Para resolver esto, necesitamos geocodificar colecciones con una forma en lugar de un punto.
OSM
OpenStreetMaps tiene los datos que necesitamos, pero es extremadamente difícil de extraer. La jerarquía administrativa no se almacena explícitamente. Nominatim se utiliza para resolver este problema para OSM. Una búsqueda de Nominatim solo devuelve características. Entonces, una consulta para Knighton en Teme devuelve dos paradas de autobús, pero no la relación de límite administrativo.
La API Overpass parecía prometedora, pero no puede hacer coincidencias de cadenas difusas. Overpass solo puede hacer coincidencias exactas o expresiones regulares. Podríamos usar Overpass si hubiera una manera fácil de estandarizar los nombres de lugares. En otras palabras, si OSM nos proporcionó una manera de estandarizar "Knighton on Teme, Worcestershire, Inglaterra" a "Knighton on Teme CP, Malvern Hills, Worcestershire, West Midlands, Inglaterra, Reino Unido" de acuerdo con la jerarquía OSM, entonces una cadena difusa la correspondencia no sería necesaria.
Resumen
Lo que necesitamos es un servicio que nos permita realizar búsquedas de cadenas difusas para un lugar (o nivel administrativo) y recuperar sus límites.
Reconocemos que será difícil obtener datos de límites para todo el mundo. Afortunadamente, probablemente no lo necesitemos pronto. Solo necesitamos datos para las áreas del mundo donde existen registros genealógicos y los genealogistas investigan.
Parece que necesitaremos construir nuestro propio servicio que indexe OSM de tal manera que nos permita consultar los límites administrativos. Pero realmente preferiríamos no hacerlo. ¿Hay alguna otra forma de recuperar estos datos con los servicios existentes?