Distância total da rota
Obtenha o comprimento total de uma rota por vários pontos GPS, trecho a trecho: os três waypoints do exemplo somam 327,98509 km, ou 203,800486 milhas, medidos em linha reta. Você também vê cada trecho em quilômetros. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Quando um percurso é definido como uma lista ordenada de coordenadas GPS — uma rota de entregas, a exportação de uma trilha de caminhada, um plano de voo ou o esboço de uma viagem multi-cidade — o primeiro número de que as equipes de produto costumam precisar é o comprimento total em linha reta (a voo de pássaro) dessa polilinha. Ferramentas de distância por pares só cobrem dois pontos de cada vez; as de perímetro de anel fechado obrigam você a voltar ao início. Esta calculadora de distância total da rota aceita dois ou mais waypoints, mede o arco de grande círculo de cada trecho consecutivo com a fórmula de haversine em uma Terra esférica fixa e devolve o comprimento somado em quilômetros, milhas estatutárias e metros, além de cada trecho em quilômetros.
Como a distância de rota multi-waypoint em grande círculo é calculada
Uma rota multi-waypoint é uma polilinha aberta ordenada sobre a Terra: do ponto um ao dois, do dois ao três, e assim até a última coordenada. Esta capacidade não fecha o caminho de volta à origem; se você precisar do comprimento de um anel geográfico fechado —parcela, zona de entrega ou outra fronteira— use em vez disso uma ferramenta de perímetro de polígono.
Esse raio coincide com a convenção de muitos trechos GIS abertos e com a família haversine de dois pontos deste catálogo, de modo que uma chamada com dois waypoints reproduz o mesmo comprimento de arco de uma ferramenta de distância por par, até o arredondamento compartilhado. As milhas estatutárias usam a conversão internacional de 1609.344 metros por milha.
O modelo é esférico, não geodésicas elipsoidais WGS84 de Vincenty ou Karney, portanto os resultados podem diferir por uma pequena fração de porcentagem de bibliotecas de levantamento — em geral adequado para pré-filtros logísticos, planejadores de viagem, resumos esportivos e buckets de analytics, e não um substituto de topografia cadastral. Pontos antípodas e quase idênticos são suportados; o clamp interno evita que casos-limite de ponto flutuante produzam NaN, e waypoints consecutivos idênticos contribuem com comprimento zero.
Onde a distância total da rota se encaixa em produtos e pipelines
Associe a um geocodificador só quando partir de endereços; depois de ter lat e lon, evite geocodificar de novo só para medir comprimento. Para distância de direção curva a curva, ETAs com trânsito ou perfis de elevação, mantenha um motor de roteamento dedicado — esta ferramenta é comprimento de polilinha de grande círculo, não custo de rede viária.
Para fronteiras fechadas use perímetro de polígono; para um único par origem–destino uma chamada haversine de dois pontos basta, mas produtos multi-cidade e multi-checkpoint precisam da forma de rota somada para que uma requisição substitua n−1 chamadas por pares e garanta ordenação consistente. Validação falha não consome saldo. Mantenha listas modestas para UX interativa, fixe totais arredondados nos testes e você obtém um bloco pequeno e auditável para cada canal que o KIT já atende.
Casos de uso
Esboços de entrega multi-parada e serviço de campo
Some trechos de grande círculo entre depósito e pins de clientes para estimar o comprimento do tour antes de gastar orçamento em APIs de roteamento rodoviário.
Manchetes de distância de tracks GPX e GeoJSON
Reduza um track exportado de caminhada, ciclismo ou voo a totais em km, mi e m mais segmentos por trecho para painéis e cartões de compartilhamento.
GIS de sala de aula e enriquecimento em massa de itinerários
Adicione totais de rota multi-cidade a voo de pássaro a dados de aula, planejadores de viagem ou linhas CSV sem levantar uma pilha GIS.
Perguntas frequentes
O caminho fecha de volta ao primeiro waypoint?
Não. Esta ferramenta mede uma polilinha aberta. Para o perímetro de um anel geográfico fechado, use em vez disso uma calculadora de perímetro de polígono.
Qual é o número mínimo de waypoints?
São necessários pelo menos dois pontos {lat, lon}.
É o mesmo que distância de direção ou por estrada?
Não. Os resultados são a voo de pássaro em uma esfera. Distância rodoviária, trânsito e elevação exigem um motor de roteamento; use isto para comprimento de polilinha e pré-filtros.
Em quais unidades sai o total?
Em quilômetros por padrão, ou em milhas terrestres ou metros, se preferir. Os três totais sempre aparecem, junto com cada trecho em quilômetros, e uma milha conta como 1609,344 metros.
O que acontece se eu trocar latitude e longitude?
Se os dois números continuarem dentro dos intervalos válidos, a rota é medida assim mesmo e o total não faz sentido. Confira qual valor é a latitude e qual é a longitude antes de medir uma lista longa.
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/route-total-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"waypoints":[{"lat":40.7128,"lon":-74.006},{"lat":39.9526,"lon":-75.1652},{"lat":38.9072,"lon":-77.0369}]}'const res = await fetch("https://api.kit.forhosting.com/geo/route-total-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"waypoints": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 39.9526,
"lon": -75.1652
},
{
"lat": 38.9072,
"lon": -77.0369
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/route-total-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"waypoints": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 39.9526,
"lon": -75.1652
},
{
"lat": 38.9072,
"lon": -77.0369
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/route-total-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"waypoints":[{"lat":40.7128,"lon":-74.006},{"lat":39.9526,"lon":-75.1652},{"lat":38.9072,"lon":-77.0369}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"waypoints":[{"lat":40.7128,"lon":-74.006},{"lat":39.9526,"lon":-75.1652},{"lat":38.9072,"lon":-77.0369}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/route-total-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
{
"waypoints": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 39.9526,
"lon": -75.1652
},
{
"lat": 38.9072,
"lon": -77.0369
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.route_total_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
Como a distância de rota multi-waypoint em grande círculo é calculada
Os comprimentos de cada trecho são guardados em quilômetros, somados em precisão plena e depois arredondados para um contrato JSON estável: seis casas decimais para quilômetros e milhas, três para metros.
Contrato de entrada, unidades, aliases e erros de validação
A latitude deve estar no intervalo fechado de −90 a 90; a longitude em −180 a 180 inclusive. O unit opcional escolhe qual valor preenche o campo total principal: km (padrão), mi ou m. Um único waypoint, um array vazio ou mais de cinco mil pontos falham na validação antes de qualquer distância ser calculada. Trocar lat e lon é um bug comum do cliente: se ambos os números ainda caírem nos dois intervalos, a chamada pode ter sucesso com um caminho sem sentido, então verifique sempre norte-sul versus leste-oeste antes de jobs em massa. Envie um corpo JSON com um array waypoints obrigatório de pelo menos dois objetos, cada um com latitude e longitude em graus decimais no estilo WGS84. Valores fora da faixa, não finitos, campos ausentes, strings vazias ou itens que não sejam objetos são rejeitados com invalid_input e nunca cobrados. O array aceita os aliases de transporte points, coordinates e route; cada vértice aceita latitude por lat e longitude ou lng por lon, para que clientes no estilo GeoJSON e móveis mapeiem campos sem um passo de remodelagem. Independentemente de unit, toda resposta bem-sucedida sempre inclui total_km, total_mi e total_m para que o cliente exiba várias unidades sem uma segunda chamada. O payload também informa waypoint_count, segment_count (sempre um a menos que a contagem de waypoints em uma rota aberta válida), segments_km como lista ordenada de comprimentos de trecho, e earth_radius_km igual a 6371 para auditoria. O preço é um US$ 0,002 fixo por item bem-sucedido na API; o caminho tier-A no navegador foi pensado para checagens interativas sem montar primeiro um pipeline completo.
Onde a distância total da rota se encaixa em produtos e pipelines
Use este endpoint sempre que você já tiver coordenadas ordenadas e precisar de um comprimento de tour a voo de pássaro transparente: esboços de entrega multi-parada antes do roteamento rodoviário, exportações de tracks GPX ou GeoJSON reduzidas a uma distância de manchete, laboratórios GIS de sala de aula comparando o comprimento da polilinha com mapas planos, apps esportivos resumindo segmentos entre checkpoints, e recursos de fraude ou risco que comparam itinerários alegados a limites em linha reta. Chame-o de um Worker, um job de backend ou um script: passe a lista de waypoints, leia total e os três campos de unidade e, opcionalmente, armazene segments_km ao lado de cada trecho para breakdowns de UI.
Perguntas técnicas
Como a distância total da rota é calculada?
Cada par consecutivo de waypoints é medido com a fórmula haversine de grande círculo em uma esfera de raio 6371 km; os comprimentos dos trechos são somados para produzir total_km, total_mi e total_m.
Quanto custa a API?
Cada solicitação bem-sucedida é precificada em US$ 0,002 do saldo pré-pago ForHosting KIT. Validação falha não é cobrada. A ferramenta do navegador é gratuita.