Geocodificação para uma forma em vez de um ponto
O projeto no qual estou trabalhando atualmente é Find-A-Record . Estamos geocodificando coleções de registros genealógicos e armazenando-as em um índice espacial (navegue em nosso blog se quiser saber mais). As pesquisas são baseadas em uma forma. Retornamos coleções que se cruzam ou estão contidas na área de pesquisa.
Durante os primeiros estados de desenvolvimento, usamos nomes geográficos para geocodificar coleções até certo ponto. Isso funciona bem para coleções associadas a níveis administrativos mais baixos, como cidades, vilas e aldeias. No entanto, ele realmente falha quando você obtém o nível do condado, estado e país.
O Censo dos EUA de 1940 está associado aos Estados Unidos e receberia um ponto no norte do Kansas. Quaisquer consultas nos EUA que não estejam próximas desse ponto não retornarão o Censo dos EUA de 1940.
Para resolver isso, precisamos geocodificar coleções com uma forma em vez de um ponto.
OSM
O OpenStreetMaps possui os dados de que precisamos, mas é extremamente difícil de extrair. A hierarquia administrativa não é armazenada explicitamente. O Nominatim é usado para resolver esse problema no OSM. Uma pesquisa Nominatim retorna apenas recursos. Portanto, uma consulta a Knighton em Teme retorna dois pontos de ônibus, mas não a relação de fronteira administrativa.
A API Overpass parecia promissora, mas não pode executar correspondências difusas. O viaduto só pode fazer correspondências exatas ou regex. Poderíamos usar o Overpass se houvesse uma maneira fácil de padronizar nomes de locais. Em outras palavras, se a OSM fornecesse uma maneira de padronizar "Knighton em Teme, Worcestershire, Inglaterra" para "Knighton em Teme CP, Malvern Hills, Worcestershire, West Midlands, Inglaterra, Reino Unido", de acordo com a hierarquia da OSM e a sequência difusa a correspondência não seria necessária.
Sumário
O que precisamos é de um serviço que nos permita realizar pesquisas de strings fuzzy para um local (ou nível administrativo) e recuperar seus limites.
Reconhecemos que será difícil obter dados de fronteira para o mundo inteiro. Felizmente, provavelmente não precisaremos tão cedo. Precisamos apenas de dados para áreas do mundo em que existem registros genealógicos e os genealogistas pesquisam.
Parece que precisaremos criar nosso próprio serviço, que indexa o OSM de maneira a permitir a consulta de limites administrativos. Mas nós realmente preferimos não. Existe alguma outra maneira de recuperar esses dados com os serviços existentes?