Calculadora de distância Vincenty
De 50,06638889, -5,71472222 até 58,64388889, -3,07 a distância elipsoidal é de 969,9329875586 km, com rumo de partida de 9,1423286009°. Digite dois pontos em graus decimais e receba um resultado que considera o achatamento da Terra. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Lat. 1
- 50,06638889
- Lon. 1
- -5,71472222
- Lat. 2
- 58,64388889
- Lon. 2
- -3,07
- Distância m
- 969.932,9875585939
- Distância km
- 969,9329875586
- Rumo inicial °
- 9,1423286009
- Rumo final °
- 11,2977211188
A distância inversa de Vincenty responde a uma pergunta de topografia e navegação que uma fórmula esférica simples deixa ligeiramente errada em rotas longas: qual é o comprimento do caminho geodésico de superfície entre duas coordenadas geodésicas no elipsoide real WGS-84, e não em uma esfera média? Engenheiros SIG, topógrafos, planejadores de aviação e plataformas logísticas usam esse comprimento elipsoidal quando projeções de mapa são excesso mas a consistência em escala de metros ainda importa entre continentes. Pares quase antípodas que recusam convergir falham com um erro claro de entrada inválida em vez de inventar uma distância. Coordenadas fora da faixa são rejeitadas da mesma forma.
O que a distância Vincenty mede e como fornecer os dois pontos
O problema inverso de Vincenty parte de duas latitudes e longitudes geodésicas em um esferoide achatado e resolve o comprimento do caminho de superfície mais curto que permanece nesse elipsoide, junto com o azimute direto no primeiro ponto e o azimute inverso no segundo. Diferente do haversine em uma esfera de raio fixo, a iteração leva em conta o achatamento da Terra por latitudes reduzidas e uma atualização de diferença de longitude até o resíduo de longitude cair abaixo de uma tolerância apertada.
A latitude deve estar entre menos noventa e noventa inclusive; a longitude entre menos cento e oitenta e cento e oitenta inclusive. Pontos coincidentes devolvem distância zero com rumos zero e iterações zero sem entrar no laço.
Casos de uso
Checagens de distância topográfica e cadastral
Compare extremos GPS de campo com um comprimento geodésico elipsoidal em metros para trechos de limite e QA de rede de controle sem subir um SIG desktop completo.
Planejamento de rotas de longa distância
Estime a distância real de superfície WGS-84 e o rumo inicial entre dois aeroportos ou portos quando um haversine esférico deixaria um viés pequeno mas sistemático.
Perguntas frequentes
O que acontece com pontos quase antípodas?
A iteração clássica de Vincenty pode falhar em convergir.
Isto é o mesmo que distância haversine?
Não. Haversine assume uma esfera. Vincenty modela o elipsoide WGS-84 com achatamento, então geodésicas longas são mais precisas para trabalho topográfico e intercontinental.
A calculadora de distância Vincenty é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
Qual é a diferença entre o rumo inicial e o final?
O rumo inicial é a direção em que você sai do primeiro ponto, medida no sentido horário a partir do norte verdadeiro. O final é a direção em que você chega ao segundo. Numa rota longa eles diferem: no exemplo, 9,1423286009° e 11,2977211188°.
O que acontece se eu digitar o mesmo ponto duas vezes?
Você recebe distância zero, os dois rumos em zero e zero iterações. O cálculo reconhece pontos coincidentes na hora, sem entrar no método iterativo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/geo/vincenty-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":50.06638889,"lon1":-5.71472222,"lat2":58.64388889,"lon2":-3.07}'const res = await fetch("https://api.kit.forhosting.com/geo/vincenty-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 50.06638889,
"lon1": -5.71472222,
"lat2": 58.64388889,
"lon2": -3.07
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/vincenty-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 50.06638889,
"lon1": -5.71472222,
"lat2": 58.64388889,
"lon2": -3.07
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/vincenty-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":50.06638889,"lon1":-5.71472222,"lat2":58.64388889,"lon2":-3.07}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":50.06638889,"lon1":-5.71472222,"lat2":58.64388889,"lon2":-3.07}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/vincenty-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"lat1": 50.06638889,
"lon1": -5.71472222,
"lat2": 58.64388889,
"lon2": -3.07
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.vincenty_distance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Esta capacidade recebe dois pares de latitude e longitude, executa a iteração clássica de Vincenty com semi-eixo maior e achatamento WGS-84 fixos, e devolve metros, quilômetros e rumos inicial e final como JSON determinístico.
O que a distância Vincenty mede e como fornecer os dois pontos
Envie os campos obrigatórios lat1 e lon1 para o primeiro ponto WGS-84 e lat2 e lon2 para o segundo, todos em graus decimais. Aliases como from_lat, to_lat, from_lon, to_lon, latitude1 e longitude1 são aceitos quando seu cliente já usa esses nomes. Qualquer coordenada fora desses intervalos lança invalid_input com uma mensagem que nomeia o campo e o limite, para que chamadores nunca recortem em silêncio ruído GPS ruim em uma geodésica falsa. Entradas idênticas sempre produzem o mesmo JSON porque o caminho é aritmética pura com constantes WGS-84 fixas, sem relógio de parede e sem serviço de mapa externo.
Lendo metros, quilômetros, rumos, iterações e convergência
Prefira metros para corredores de levantamento e trabalho em escala de pista; prefira quilômetros para trechos interurbanos e oceânicos. Em sucesso a resposta ecoa cada coordenada de entrada e então informa distance_m e distance_km como comprimento geodésico elipsoidal. initial_bearing_deg é o azimute direto no primeiro ponto medido no sentido horário a partir do norte verdadeiro no intervalo de zero a trezentos e sessenta; final_bearing_deg é o azimute inverso correspondente no segundo ponto após a chegada da geodésica. iterations conta quantas atualizações de longitude o solver precisou antes do resíduo cair abaixo do épsilon publicado, o que ajuda a diagnosticar pares limítrofes sem refazer o laço à mão. ellipsoid é sempre a string WGS-84, a_m é o semi-eixo maior em metros e f é o achatamento, para que o código a jusante possa afirmar o datum sem codificar constantes em cada cliente. method é sempre vincenty_inverse e converged é true em cada resposta bem-sucedida. Quando dois pontos são quase antípodas a iteração clássica pode nunca estabilizar; o motor para em um teto rígido de iterações e lança invalid_input com mensagem que nomeia a falha quase antípoda em vez de devolver uma distância pela metade. Falhas de validação por campos ausentes, números não finitos e coordenadas fora da faixa também falham fechadas e não são cobradas na API pré-paga.
Uso da API, preços, fluxos SIG e limites práticos
Envie um corpo JSON com as quatro coordenadas obrigatórias e use a calculadora gratuita de distância Vincenty no navegador para demos de sala, checagens de carta e verificação mental rápida sem instalar PROJ, GeographicLib ou um SIG completo. Use a API pré-paga quando uma plataforma logística, ferramenta de planejamento de voo, fluxo cadastral ou harness de simulação precisar de um contrato estável sob saldo KIT a US$ 0,002 por item bem-sucedido; falhas de validação e antípodas que não convergem nunca consomem saldo após a rejeição do motor. Combine este endpoint com seu próprio geocodificador quando precisar de nomes de lugar: este produto só mede geometria no elipsoide WGS-84. Para separações continentais ordinárias Vincenty é preciso a bem menos de um metro em relação a bibliotecas geodésicas modernas; para a faixa fina de casos quase antípodas em que a iteração de 1975 diverge, mude para um solver antípoda especializado ou uma geodésica estilo Karney em vez de forçar este endpoint. Autores de SDK podem mapear distance_m e initial_bearing_deg diretamente em cartões de rota e testes unitários — os mesmos números que os alunos veem ao trabalhar um exemplo de levantamento com pares lat-lon publicados.
Casos de integração
Oráculos de geodésia em sala e exames
Alunos resolvem à mão pares da folha Vincenty; corretores fixam JSON determinístico de distância e rumo com os mesmos valores lat/lon do enunciado.
Perguntas técnicas
Como calculo a distância Vincenty entre dois pontos?
Envie JSON com lat1, lon1, lat2 e lon2 em graus decimais. A resposta inclui distance_m, distance_km, initial_bearing_deg e final_bearing_deg no elipsoide WGS-84.
Quais datum e constantes são usados?
Sempre WGS-84: semi-eixo maior a = 6378137 m e achatamento f = 1/298.257223563. A resposta ecoa ellipsoid, a_m e f em cada sucesso.