Como geocodificar uma cidade

8

Eu sei que posso chamar uma de qualquer número de APIs de geocodificação para fazer isso por mim. Isso é mais uma curiosidade do que qualquer outra coisa.

Com isso de lado, como alguém (como o Google) transforma o nome de uma cidade em latitude e longitude? Ao brincar com o Google Maps, parece que na maioria das vezes uma cidade está localizada no centro da cidade, mas parece não haver razão para que uma esquina seja escolhida sobre qualquer outra esquina.

Estou curioso para saber qual algoritmo um provedor de serviços de geocodificação utilizaria para executar essa ação?

Jason Whitehorn
fonte

Respostas:

5

O posicionamento da etiqueta geralmente é projetado para melhorar a legibilidade do mapa, em vez de ser direcionado diretamente pelos dados: geralmente o deslocamento cartográfico é realizado nas geometrias originais para melhorar a legibilidade do mapa. O 41Latitude tinha um ótimo artigo sobre posicionamento de etiquetas de cidades nas quais você poderia estar interessado.

O USGS GeoNames, também conhecido como GNIS (um gazetteer de domínio público comumente usado por, por exemplo, Geonames.org, Wikipedia, OpenStreetMap) fornece esta nota :

... A diretriz para a digitalização de recursos de área requer que as coordenadas primárias sejam tomadas no centro, mas a localização do centro de uma cidade grande às vezes é um tanto subjetiva.

Se você estava procurando escolher algoritmicamente o centro de uma cidade, pode usar o centróide de um polígono que delineia os limites da cidade, ou talvez algo mais sofisticado, como usar o centro da forma alfa .

scw
fonte
É realmente feito através do cálculo de centróides - na realidade? ... Você está certo quanto à rotulagem, mas essa não era a questão.
Underdark
Como uma cidade não é um fenômeno pontual, a colocação de etiquetas é um uso comum de um único local geocodificado em escalas grandes e médias e, em escalas pequenas, a precisão é menos importante.
o ACS
Você não quer dizer escalas pequenas e médias? (mapa do mundo = pequena escala, mapa da cidade = grande escala) #
218 Sean Sean
@ Sean sim, erro de reescrever; obrigado pelo heads-up
scw
3

Duvido que exista um algoritmo universal para isso. Os provedores de geocodificação compram seus dados de endereço de algum fornecedor. Esse fornecedor - ou quem quer que colete os dados - simplesmente decide onde fica o 'centro da cidade' (com base no conhecimento da área).

underdark
fonte
0

Esta pode não ser a resposta que você realmente deseja, mas pode ser uma solução alternativa (avaliada por estatísticos):

Se você conhece os códigos geográficos de algumas cidades e também a matriz de distância entre as cidades, pode executar, por exemplo, um MDS para calcular os códigos geográficos de cada cidade com base nas distâncias. Alguns códigos geográficos são necessários apenas para obter o "topo" e o "fundo" do mapa, pois o MDS desenhará um mapa realmente preciso de suas cidades :)

Mas voltando à pergunta: realmente boa! Definitivamente, posso calcular latitudes e longitudes em uma cidade facilmente com a ajuda dos códigos geográficos das casas situadas nas esquinas das ruas, mas não tenho uma idéia exata de como alguém poderia calcular os códigos geográficos das cidades sem saber, por exemplo, a matriz de distância mostrada acima.

Suponho que o Google (e outros) apenas compre os mapas daqueles que os possuem (como foi feito em Pasty com certeza em vários lugares, veja o artigo deste artigo da cnet), ou eles teriam que inventar esses mapas viajando por todos os sites que poderiam consomem muitos recursos.

daroczig
fonte
0

Aqui no Geocode.Farm , temos os dados do limite armazenados e, em seguida, usamos um algoritmo que amarra para criar um quadrado ou círculo (dependendo da forma dos limites). O centro é então calculado e é isso que usamos para as coordenadas retornadas.

Isenção de responsabilidade : trabalho para o Geocode Farm

Geocode.Farm Staff
fonte