Criando serviço da web de geocodificação / gazeta?

14

Gostaria de escrever um serviço da web de geocodificação para genealogia em Java. Porque é para genealogia, não preciso descer até o nível da rua. Eu só preciso ir até o município.

Analisando dados de genealogia, nomes com erros ortográficos são muito comuns. As pessoas também usam muitas abreviações fora do padrão. Por exemplo, para o condado de Baltimore, pode parecer com:

  1. Baltimore
  2. Baltimore County
  3. Baltimore Co
  4. Baltimore Cty
Jay Askren
fonte

Respostas:

10

Eu não acho que essa pergunta seja explicitamente geográfica, porque você só está interessado em nomes, então você pode perguntar no Stack Overflow . Você pode responder sua pergunta com duas informações: o estado e o nome do município corrigido. Para executar as correções, você provavelmente desejaria usar a distância de Levenshtein ( exemplo & implementação em java ) para corresponder os dados difusos aos valores corrigidos.

scw
fonte
+1 Isso provavelmente é verdade. Levenshtein parece um bom lugar para começar e parece que o Postgres ainda o suporta. Obrigado.
Jay Askren
Eu acho que combinar a distância de Levenshtein com os dados de Geonames ( geonames.org ) pode funcionar para mim. Obrigado.
Jay Askren
5

Um serviço de geocodificação precisa de dados geográficos geográficos, um gazetteer associado (para lidar com alternativas de nomes e nomes) e uma interface do usuário (para mediar a pesquisa). Para um geocoder reverso, você precisará adicionar um validador de topologia. Para Java, o JTS Topology Suite de código aberto seria a escolha natural: http://www.vividsolutions.com/jts/jtshome.htm

As geometrias de condados dos Estados Unidos podem ser encontradas no Censo: http://www.census.gov/geo/www/cob/co2000.html

Para começar no gazetteer, o US Board on Geographic Names possui um banco de dados: http://geonames.usgs.gov/

Criar um banco de dados sólido de gazetteers e algoritmos de tecelagem que toleram correspondências aproximadas de pesquisa são a parte difícil.

Glennon
fonte
Os algoritmos são o que estou procurando.
Jay Askren
Consultas sobre algoritmos de similaridade semântica podem ter mais respondentes no site principal do stackoverflow.
Glennon
1

O Google tem uma ótima API para geocodificação , se você pode seguir os termos de serviço. A demonstração básica pode ser encontrada aqui .

A utilização do serviço está sujeita a algumas limitações, mas o resultado é intuitivo, rápido, preciso e familiar para a maioria dos usuários. Isso permitirá que você se concentre no desenvolvimento da parte genealógica do seu serviço.

Adam Matan
fonte
Eu realmente gostaria de hospedar tudo em casa e não depender de uma API externa.
Jay Askren
Então, você está procurando um banco de dados de geocodificação licenciado de código aberto?
Adam Matan