Distância de rota com desvio e parada intermediária
Uma rota com desvio segue deliberadamente da origem ao destino passando por um ponto intermediário.
Executar grátis
Esta calculadora mede os dois trechos de círculo máximo, soma-os para obter a distância completa e compara o total à distância direta entre as extremidades. Assim, o custo do desvio aparece como distância absoluta e percentual. O recurso é útil em planejamento de rotas, estimativas aéreas e marítimas, logística e qualquer análise que exija uma referência geométrica reproduzível, sem mapas rodoviários nem dados de trânsito em tempo real.
O que o cálculo da rota com desvio mede
A rota tem dois segmentos conectados: da origem ao ponto intermediário e desse ponto ao destino. A calculadora avalia cada segmento como o arco mais curto sobre uma Terra esférica e soma os dois para obter a distância total. Ela também calcula separadamente o arco direto entre origem e destino. A diferença entre o total e a distância direta é o acréscimo do desvio; a divisão dessa diferença pela distância direta produz o percentual adicional. Os valores respondem a perguntas distintas: o total mostra a extensão da rota geométrica planejada, o acréscimo quantifica a distância imposta pelo ponto intermediário e o percentual permite comparar percursos de escalas diferentes. Os trechos aparecem separadamente para mostrar se a parada divide a viagem de forma equilibrada. Como o método usa coordenadas, e não uma malha viária ou aérea, ele não considera ruas, espaço aéreo restrito, correntes, relevo, horários nem trânsito. Use-o como referência consistente para comparar e filtrar opções, não como orçamento de navegação curva a curva.
Como informar coordenadas e interpretar a saída
Informe latitude e longitude em graus decimais para a origem, o único ponto intermediário e o destino. A latitude deve ficar entre -90 e 90, e a longitude entre -180 e 180. Preserve a ordem: latitude indica norte-sul e longitude indica leste-oeste. Se você as inverter, poderá descrever um local válido, porém indesejado. Escolha metros, quilômetros, milhas terrestres ou milhas náuticas; uma única unidade será aplicada a todos os campos de distância. Você também pode definir o número de casas decimais exibidas sem mudar o cálculo interno. A esfera padrão usa o raio médio IUGG da Terra de 6,371,008.8 metros, mas outro raio positivo pode ser fornecido. O acréscimo não deve ser negativo, pois o arco direto é o menor caminho esférico; ruídos numéricos são eliminados antes da resposta. Se origem e destino coincidirem, não há denominador útil para o percentual. Quando o ponto intermediário gerar deslocamento, `detour_percent` será omitido, mas os trechos, o total e o acréscimo absolutos continuarão disponíveis.
Como usar o resultado no planejamento
Use o resultado quando uma viagem precisar passar por um centro logístico, posto de controle, local de abastecimento, porto de transferência ou inspeção. Na logística, você pode comparar centros candidatos pelo acréscimo antes de consultar um serviço rodoviário mais caro. Na aviação ou navegação, milhas náuticas ajudam a avaliar o efeito geométrico de uma escala, lembrando que rotas autorizadas e condições meteorológicas podem aumentar a distância. Analistas também podem calcular o percentual adicional de várias propostas e sinalizar as que superem uma política, como dez por cento. A resposta determinística serve para testes de regressão, planilhas e auditorias: as mesmas entradas geram os mesmos campos. Uma solicitação de API custa US$ 0,002, e a versão no navegador permite verificações interativas. Não transforme essa distância isoladamente em tempo ou combustível, pois eles também dependem de velocidade, veículo, vento, congestionamento, inclinação e paradas. Alimente o modelo operacional com os trechos retornados ou use o acréscimo como filtro transparente antes de obter direções que considerem a rede real.
Casos de uso
Comparar centros de distribuição
Meça quanta distância adicional cada armazém ou centro de transferência candidato acrescenta entre origem e destino.
Avaliar um posto obrigatório
Quantifique o desvio absoluto e percentual causado por uma inspeção, passagem de fronteira ou parada de serviço.
Filtrar pontos aéreos ou marítimos
Calcule dois trechos em milhas náuticas antes de aplicar restrições meteorológicas, aéreas, marítimas ou de navegação.
Perguntas frequentes
O que é uma rota com desvio?
É um percurso de dois trechos que vai da origem ao destino passando por um único ponto intermediário.
Como o acréscimo do desvio é calculado?
A distância direta de círculo máximo é subtraída da soma dos trechos entre origem, ponto intermediário e destino.
Isso calcula distância rodoviária ou de plano de voo?
Não. O cálculo usa arcos de círculo máximo entre coordenadas e não inclui estradas, rotas autorizadas, relevo nem trânsito.
Quais unidades de distância são aceitas?
Você pode solicitar metros (m), quilômetros (km), milhas terrestres (mi) ou milhas náuticas (nmi).
O que acontece se origem e destino coincidirem?
A distância direta será zero. Trechos, total e acréscimo continuam disponíveis; o percentual só aparece com denominador válido.
Quanto custa uma solicitação de API?
Cada solicitação de API concluída custa US$ 0,002. Entradas inválidas são rejeitadas antes do cálculo.
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/dogleg-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}'const res = await fetch("https://api.kit.forhosting.com/geo/dogleg-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/dogleg-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/dogleg-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/dogleg-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
{
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.dogleg_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. |