Por exemplo, se tivermos esse conjunto de coordenadas
"latitude": 48.858844300000001,
"longitude": 2.2943506,
Como podemos descobrir a cidade / país?
geolocation
geocoding
geospatial
geo
ming yow
fonte
fonte
Respostas:
A API gratuita do Google Geocoding fornece esse serviço por meio de uma API HTTP REST. Observe que a API é de uso e taxa limitada , mas você pode pagar pelo acesso ilimitado.
Experimente este link para ver um exemplo da saída (isso é em json, a saída também está disponível em XML)
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true
fonte
Outra opção:
Vantagens:
Desvantagens:
fonte
Você precisa
geopy
e depois:
para obter mais informações:
fonte
Uma alternativa de código aberto é o Nominatim do Open Street Map. Tudo o que você precisa fazer é definir as variáveis em um URL e retornar a cidade / país desse local. Por favor, verifique o seguinte link para documentação oficial: Nominatim
fonte
Eu estava procurando por uma funcionalidade semelhante e vi os dados " http://download.geonames.org/export/dump/ " compartilhados na resposta anterior (obrigado por compartilhar, é uma excelente fonte) e implementou um serviço baseado em nos dados cities1000.txt.
Você pode vê-lo rodando em
http://scatter-otl.rhcloud.com/location?lat=36&long=-78.9(link quebrado) Basta alterar a latitude e longitude dos seus locais.É implantado no OpenShift (RedHat Platform). A primeira chamada após um longo período inativo pode levar algum tempo, mas geralmente o desempenho é satisfatório. Sinta-se livre para usar este serviço como quiser ...
Além disso, você pode encontrar a fonte do projeto em https://github.com/turgos/Location .
fonte
Eu usei o Geocoder , uma boa biblioteca Python que suporta vários provedores, incluindo Google, Geonames e OpenStreetMaps, para mencionar apenas alguns . Eu tentei usar a biblioteca GeoPy, e muitas vezes obtém tempos limite. Desenvolver seu próprio código para o GeoNames não é o melhor uso do seu tempo e você pode acabar obtendo um código instável. O geocoder é muito simples de usar na minha experiência e possui uma documentação suficientemente boa . Abaixo está um código de exemplo para procurar cidade por latitude e longitude ou encontrar latitude / longitude por nome da cidade.
fonte
geocoder
, eu também gostaria de tentar!Passei cerca de 30 minutos tentando encontrar um exemplo de código de como fazer isso em Javascript. Não consegui encontrar uma resposta rápida e clara para a pergunta que você postou. Então ... eu fiz o meu. Espero que as pessoas possam usar isso sem ter que procurar na API ou olhar para o código que não têm idéia de como ler. Ha se nada mais eu posso referenciar este post para o meu próprio material .. Boa pergunta e obrigado pelo fórum de discussão!
Isso está utilizando a API do Google.
.
fonte
Sei que essa pergunta é realmente antiga, mas estou trabalhando no mesmo problema e encontrei um pacote extremamente eficiente e conveniente
reverse_geocoder
, criado por Ajay Thampi. O código está disponível aqui . Ele se baseou em uma implementação paralela de árvores KD, que é extremamente eficiente para grandes quantidades de pontos (levei alguns segundos para obter 100.000 pontos.É baseado neste banco de dados, já destacado por @turgos.
Se sua tarefa é encontrar rapidamente o país e a cidade de uma lista de coordenadas, essa é uma ótima ferramenta.
fonte
Realmente depende de quais restrições de tecnologia você possui.
Uma maneira é ter um banco de dados espacial com o esboço dos países e cidades em que você está interessado. Por esboço, quero dizer que países e cidades são armazenados como o polígono do tipo espacial. Seu conjunto de coordenadas pode ser convertido no ponto do tipo espacial e consultado nos polígonos para obter o nome do país / cidade onde o ponto está localizado.
Aqui estão alguns dos bancos de dados compatíveis com o tipo espacial: SQL server 2008 , MySQL , postGIS - uma extensão do postgreSQL e Oracle .
Se você deseja usar um serviço em vez de ter seu próprio banco de dados, use o GeoPlanet do Yahoo . Para a abordagem de serviço, consulte esta resposta em gis.stackexchange.com , que cobre a disponibilidade de serviços para resolver seu problema.
fonte
Você pode usar a API de geocodificação do Google
Abaixo está a função php que retorna Endereço, Cidade, Estado e País
fonte
Loc2country é uma ferramenta baseada em Golang que retorna o código ISO alfa-3 do país para determinadas coordenadas de localização (lat / lon). Responde em microssegundos. Ele usa uma geohash para o mapa do país.
Os dados do geohash são gerados usando o georaptor .
Usamos geohash no nível 6 para esta ferramenta, ou seja, caixas de tamanho 1,2 km x 600 m.
fonte
Minimize a quantidade de bibliotecas.
Obtenha uma chave para usar a API no site e obtenha o resultado em uma solicitação http:
enrolar -i -H "chave: YOUR_KEY" -X GET https://api.latlong.dev/lookup?lat=38.7447913&long=-9.1625173
fonte
Por favor, verifique a resposta abaixo. Funciona para mim
fonte
Se você estiver usando a API do Google Places, é assim que você pode obter o país e a cidade do objeto de lugar usando Javascript:
fonte