11 de fevereiro
Código fonte
25 visualizações

Obter nome da cidade via latitude e longitude (e bônus)

Nada de Google! Faça por conta própria (DIY)

Quer fazer por conta própria? Você terá que pagar o uso da maioria desses serviços com milhares de limitações. Que tal ter sua própria lista de estados e cidades, juntamente com a latitude e longitude conhecidas?

Use uma base de dados brasileira que já está pronta

Não tente construir a lista sozinho. Este projeto, por exemplo, é um banco de dados brasileiro de estados e cidades: Uma lista de 5.568 cidades e 27 estados tem o tamanho de 430 KB!

Vale muito a pena, considerando a quantidade de dados que você precisa armazenar e os benefícios que obtém com eles.

API

É necessário configurar uma rota em seu framework pra receber latitude e longitude, e retornar os dados da cidade, através da consulta detalhada no final do artigo.

Agora que tenho minha própria lista de cidades, e uma API, posso indicar ao usuário o nome da cidade dele, ou ainda outras cidades próximas, como detalhado no BÔNUS.

BÔNUS

Posso mostrar apenas a cidade do usuário, mas também consigo exibir pra ele os nomes das 5 cidades mais próximas pra expandir resultados ou fazer qualquer outra coisa que eu quiser. Com esta consulta simples ao banco de dados MySQL do meu aplicativo! Veja como é simples, mas poderoso


set @lat=-20.0080509185791;
set @lng=-44.003021240234375;

-- The main SQL query that returns the closest 5 airports.
SELECT id, nome, lat, lng, 111.045 * DEGREES(ACOS(COS(RADIANS(@lat))
 * COS(RADIANS(lat))
 * COS(RADIANS(lng) - RADIANS(@lng))
 + SIN(RADIANS(@lat))
 * SIN(RADIANS(lat))))
 AS distance_in_km
FROM cities
ORDER BY distance_in_km ASC
LIMIT 0,5;

Gostou do conteúdo? Compartilhe com o mundo!

Um pouco sobre o autor

Matteus Barbosa - Desenvolvedor Web
                               
Trabalho como Desenvolvedor web desde 2013 e atualmente faço parte do quadro da Symplicity. Também atuo em projetos como profissional autônomo. Para saber da minha experiência, acesse meu Currículo, meu Portfólio, a relação de Referências de Clientes ou ainda a Lista de Serviços. As propostas de serviço são iniciadas com conversas informais, seguidas da coleta de requisitos, elaboração do cronograma e por fim a proposta de orçamento. Todas as etapas são acompanhados de perto via ferramenta online e videoconferências. Presto serviços de projeto, desenvolvimento e manutenção de sistemas baseados nos mais diversos frameworks.