Função para calcular distância entre duas coordenadas em JS
Neste artigo você vai aprender a como criar uma função para calcular distância entre duas coordenadas em JavaScript

Fala programador(a), beleza? Bora aprender mais sobre JavaScript!
Ao desenvolver aplicativos baseados em localização, uma das tarefas mais comuns é calcular a distância entre duas coordenadas.
Em JavaScript, podemos escrever uma função simples para calcular a distância entre duas coordenadas usando a fórmula Haversine.
A fórmula Haversine é uma fórmula matemática que é usada para calcular a distância entre dois pontos em uma esfera.
A Terra é uma esfera aproximada, por isso podemos usar a fórmula Haversine para calcular a distância entre duas coordenadas na Terra.
Aqui está a função para calcular a distância entre duas coordenadas em JavaScript:
function distance(lat1, lon1, lat2, lon2, unit) {
const radlat1 = Math.PI * lat1/180;
const radlat2 = Math.PI * lat2/180;
const radlon1 = Math.PI * lon1/180;
const radlon2 = Math.PI * lon2/180;
const theta = lon1-lon2;
const radtheta = Math.PI * theta/180;
let dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist);
dist = dist * 180/Math.PI;
dist = dist * 60 * 1.1515;
if (unit === "K") { dist = dist * 1.609344 }
if (unit === "N") { dist = dist * 0.8684 }
return dist;
}
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 116 aulas
- 4 projetos
- 9h 23min
Esta função recebe quatro argumentos – lat1, lon1, lat2 e lon2 – que representam as coordenadas de latitude e longitude dos dois pontos que desejamos medir a distância.
Também aceita um argumento opcional unit, que pode ser “K” para quilômetros ou “N” para milhas náuticas.
A função usa a fórmula Haversine para calcular a distância entre os dois pontos.
Os valores de latitude e longitude são convertidos em radianos e, em seguida, a distância entre os pontos é calculada usando a fórmula Haversine.
A distância resultante é convertida em milhas ou quilômetros, dependendo do valor de unidade fornecido.
Aqui está um exemplo de como usar a função para obter a distância entre duas coordenadas em JavaScript:
const distanceInKm = distance(52.5200, 13.4050, 48.8566, 2.3522, "K");
console.log(`A distância entre Berlim e Paris é de ${distanceInKm} km.`);
Neste exemplo, usamos a função distance() para calcular a distância entre Berlim e Paris em quilômetros.
O resultado é exibido no console.
Em resumo, a função para calcular a distância entre duas coordenadas em JavaScript usa a fórmula Haversine para calcular a distância entre dois pontos em uma esfera.
É uma função útil para desenvolvedores que trabalham com aplicativos baseados em localização e desejam medir a distância entre dois pontos geográficos.
Quer aprender mais sobre React? Confira o vídeo abaixo:
Conclusão
Em conclusão, a função para calcular a distância entre duas coordenadas em JavaScript é uma ferramenta útil para desenvolvedores que trabalham com aplicativos baseados em localização.
Usando a fórmula Haversine, podemos calcular a distância entre dois pontos na Terra usando suas coordenadas de latitude e longitude.
A função é fácil de implementar e pode ser personalizada para aceitar diferentes unidades de medida, como quilômetros ou milhas náuticas.
Com a função para obter a distância entre duas coordenadas em JavaScript, podemos fornecer recursos úteis para os usuários do nosso aplicativo, como a distância entre eles e outros pontos de interesse ou usuários próximos.
Também podemos usá-la para criar recursos que dependem da localização do usuário, como direções de condução ou navegação.
Em resumo, a função para calcular a distância entre duas coordenadas em JavaScript é uma ferramenta essencial para desenvolvedores de aplicativos baseados em localização.
Com a fórmula Haversine e algumas linhas de código JavaScript, podemos medir a distância entre dois pontos geográficos com precisão e facilidade.
Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.
Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!
Pegando a localização atual do usuário:
Na maioria dos apps baseados em localização tu não sabe a coordenada do usuário de antemão, ela vem do navegador
Pra isso existe a API de Geolocation, built-in no browser, sem instalar nada
navigator.geolocation.getCurrentPosition((pos) => { const lat = pos.coords.latitude; const lon = pos.coords.longitude; const km = distance(lat, lon, 48.8566, 2.3522, ‘K’); console.log(Você está a ${km} km de Paris); }, (erro) => { console.log(‘Não deu pra pegar a localização’, erro); });
Se liga nisso: o navegador vai pedir permissão pro usuário, então sempre trata o caso dele negar (o segundo callback ali em cima)
Outra pegadinha: a Geolocation só funciona em HTTPS ou em localhost, se tu testar em http puro o browser bloqueia e tu fica quebrando a cabeça sem entender
Com isso tu junta a coordenada real do usuário com qualquer ponto de interesse e joga a distância na tela, que é o uso mais comum dessa função
Só pra deixar claro de onde vieram esses números do exemplo: 48.8566, 2.3522 é a latitude e a longitude de Paris, e 52.5200, 13.4050 é Berlim
A ordem importa: a função espera latitude primeiro, longitude depois
É fácil trocar sem querer e achar que a fórmula está errada, quando na verdade tu inverteu os argumentos
Perguntas frequentes:
Qual unidade a função retorna por padrão?
Se tu não passar o argumento unit, ela retorna em milhas
Passa ‘K’ pra ter o resultado em quilômetros e ‘N’ pra milhas náuticas, como no exemplo
Como calcular a distância em metros?
Pega o resultado em quilômetros (unit ‘K’) e multiplica por 1000
Algo tipo const metros = distance(lat1, lon1, lat2, lon2, ‘K’) * 1000
A fórmula Haversine é precisa?
É uma ótima aproximação pra maioria dos casos do dia a dia
Como ela assume a Terra como uma esfera perfeita (e ela não é bem assim, é meio achatada), aparece um errinho pequeno em distâncias grandes, mas pra app de localização normal isso não te atrapalha
Dá pra usar em React, Node ou Vue?
Dá sim, é JavaScript puro, só usa o objeto Math que já existe em qualquer ambiente
É só copiar a função e chamar onde tu precisar
Leia também
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const

Como redirecionar para outra página com JavaScript
Exercícios de lógica de programação JavaScript com gabarito
Quais são os melhores exercícios lógica de programação JavaScript? Colocar em prática os exercícios de lógica de programação em JavaScript é de extrema importância para […]
