Calculadora de distância cross-track em rota de círculo máximo
Uma posição em 53,2611, −0,7972 fica 307,5495704195 m à direita da rota de grande círculo entre dois pontos de passagem. Informe o ponto e as duas pontas da rota para receber o desvio com sinal, em metros e quilômetros, e o lado. 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
- Latitude
- 53,2611
- Longitude
- -0,7972
- Lat. inicial
- 53,3206
- Long. inicial
- -1,7297
- Lat. final
- 53,1887
- Long. final
- 0,1334
- Raio m
- 6.371.000
- Cross-track m
- -307,5495704195
- Cross-track km
- -0,3075495704
- Absoluto m
- 307,5495704195
A distância cross-track responde a uma pergunta precisa de navegação: a que distância esta posição está da rota de círculo máximo planejada entre dois waypoints, e de que lado da linha de rumo ela se encontra. Pilotos, oficiais de náutica, operadores de drones e engenheiros de logística usam esse desvio com sinal para monitorar o desvio de rota, criar alertas de corredor e avaliar trajetórias em relação a uma linha de derrota publicada, sem replicar um sistema completo de gerenciamento de voo.
O que a distância lateral indica
Trace o grande círculo que passa pelo início da rota planejada, A, e pelo fim, B. De qualquer terceiro ponto dá para baixar uma perpendicular até esse círculo, que o encontra em ângulo reto sobre a esfera. O comprimento dessa perpendicular é a distância lateral: quanto a posição se afasta da rota traçada. O sinal indica o lado: positivo é à esquerda indo de A para B, negativo é à direita, e valores muito perto de zero aparecem como na rota. O cálculo usa uma esfera de 6.371.000 metros de raio, a menos que você escolha outro, e mostra o resultado em metros e quilômetros.
Para que serve e o que observar
Pilotos, oficiais de náutica, operadores de drones e equipes de logística usam o desvio com sinal para acompanhar desvios de rumo, disparar um alerta quando uma posição ao vivo sai do corredor ou avaliar um voo registrado contra a rota publicada. No exemplo, o ponto consultado fica 307,5495704195 metros à direita da linha de A para B. Preste atenção à ordem dos dois pontos de passagem, porque trocar A e B inverte esquerda e direita. Coordenadas fora do intervalo são recusadas em vez de cortadas, então o ruído do GPS nunca vira um desvio falso.
Casos de uso
Monitoramento de corredores aéreos e marítimos
Compare posições de GPS ao vivo com uma rota de círculo máximo publicada entre dois waypoints e alerte quando o desvio cross-track com sinal exceder a metade da largura permitida do corredor.
Avaliação de trajetórias de drones e robótica
Pontue trajetórias registradas em relação a uma linha de rota planejada, relatando desvios à esquerda e à direita em metros para relatórios de qualidade e testes de voo corrigidos automaticamente.
Perguntas frequentes
O que significa um valor cross-track positivo ou negativo?
Positivo significa que o ponto de consulta está à esquerda da rota dirigida de círculo máximo do início ao fim; negativo, à direita.
A calculadora de distância cross-track é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
Posso alterar o raio da Terra?
Passe outro raio positivo ao modelar uma esfera diferente; as distâncias escalam linearmente com R.
Como uso isso para avisar quando um veículo sai do corredor?
Compare o desvio em valor absoluto com a metade da largura do corredor permitido. Se a distância lateral de uma posição ao vivo passar disso, o veículo saiu do corredor, e o sinal mostra se ele foi para a esquerda ou para a direita.
A ferramenta também diz quanto da rota já foi percorrido?
Sim. Além do desvio lateral, o resultado traz a distância ao longo do trajeto até o pé da perpendicular e o comprimento total da rota; no exemplo, 62331,4932854415 m de um total de 124800,9266055206 m.
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/cross-track-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}'const res = await fetch("https://api.kit.forhosting.com/geo/cross-track-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/cross-track-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/cross-track-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":53.2611,"lon":-0.7972,"start_lat":53.3206,"start_lon":-1.7297,"end_lat":53.1887,"end_lon":0.1334}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/cross-track-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
{
"lat": 53.2611,
"lon": -0.7972,
"start_lat": 53.3206,
"start_lon": -1.7297,
"end_lat": 53.1887,
"end_lon": 0.1334
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.cross_track_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
Este recurso recebe a latitude e a longitude do ponto de consulta junto com as coordenadas de início e fim da rota sobre a esfera WGS84, aplica a fórmula esférica clássica com distância de haversine e rumos iniciais, e retorna metros e quilômetros com um rótulo claro de esquerda, direita ou sobre a rota. Latitudes ou longitudes fora do intervalo falham com invalid_input e não são cobradas.
O que significa a distância cross-track e como informar os três pontos
Imagine um círculo máximo traçado pelo início A e pelo fim B da rota sobre um modelo esférico da Terra. A partir de qualquer terceiro ponto P é possível baixar uma perpendicular ao longo de outro círculo máximo que encontra a linha de rumo em ângulo reto no sentido esférico. O comprimento dessa perpendicular, escalado pelo raio da esfera, é a distância cross-track. Se A e B coincidirem, a rota é indefinida e o motor rejeita a solicitação. A forma com sinal indica de que lado da rota dirigida você está: valores positivos significam à esquerda ao viajar de A para B, valores negativos à direita, e magnitudes próximas de zero são reportadas como on_track por estabilidade numérica. Envie os campos obrigatórios lat e lon para o ponto de consulta, start_lat e start_lon para A, e end_lat e end_lon para B, todos em graus decimais. Aliases como latitude, longitude, lat1, lon1, lat2 e lon2 são aceitos quando seu cliente já usa esses nomes. A latitude deve ficar entre menos noventa e noventa, inclusive; a longitude entre menos cento e oitenta e cento e oitenta, inclusive. Qualquer coordenada fora desses intervalos gera invalid_input com uma mensagem que indica o campo e o limite, de modo que as chamadas nunca truncam silenciosamente ruído de GPS inválido em um desvio falso. O campo opcional radius_m assume por padrão seis milhões trezentos e setenta e um mil metros, o raio médio da Terra usado em muitos exemplos de aviação; aumente-o ou reduza-o apenas quando modelar intencionalmente outra esfera. Entradas idênticas sempre produzem o mesmo JSON, pois o cálculo é aritmética pura, sem relógio de parede nem serviço externo de mapas.
Como ler os metros com sinal, os rótulos de lado, a distância ao longo da rota e os rumos
Prefira metros para corredores de drones e monitoramento em escala de pista; prefira quilômetros para rotas oceânicas ou aéreas de longo curso. Em caso de sucesso, a resposta repete cada coordenada e o raio utilizado e, em seguida, reporta cross_track_m e cross_track_km como o desvio perpendicular com sinal. absolute_m e absolute_km são a magnitude sem sinal, úteis para verificações de limiar em que só importa o quanto você se desviou. O campo side vale left, right ou on_track conforme a convenção de sinal positive_left_of_path_A_to_B documentada no payload. along_track_m mede o avanço a partir de A ao longo do círculo máximo infinito em direção a B e pode ser negativo ou maior que o comprimento do segmento quando P se projeta fora do arco finito A–B; use-o com path_length_m quando precisar de contexto lateral e longitudinal ao mesmo tempo. path_bearing_deg é o rumo inicial de A para B em graus a partir do norte, no sentido horário, no intervalo de zero a trezentos e sessenta, e angular_cross_track_deg reexpressa o desvio em graus angulares para testes unitários que comparam com tabelas de livros didáticos. method é sempre spherical_cross_track, para que o código posterior possa verificar o algoritmo sem inspecionar formatos. As falhas de validação nunca inventam uma distância: campos ausentes, números não finitos, coordenadas fora do intervalo e extremos coincidentes falham de forma fechada com invalid_input e não são cobrados na API pré-paga.
Uso da API, preços, fluxos de navegação e limites práticos
O modelo é esférico, não elipsoidal; portanto, para levantamentos com precisão submétrica você deve aplicar uma biblioteca geodésica local ENU ou completa; para corredores de navegação, lições e alertas de frota, a esfera de Terra média corresponde às fórmulas publicadas nas referências padrão de pilotos e marinheiros. Envie um corpo JSON com as seis coordenadas obrigatórias e o radius_m opcional; use a calculadora de distância cross-track gratuita no navegador para demonstrações em sala de aula, trabalho de carta náutica e verificações rápidas sem instalar uma biblioteca geoespacial. Use a API pré-paga quando um painel de operações de voo, um sistema de tráfego de embarcações, um roteador de entregas de última milha ou um harness de simulação precisar de um contrato estável com saldo KIT a US$ 0,002 por item bem-sucedido; as falhas de validação nunca consomem saldo depois que o motor rejeita a solicitação. Combine este endpoint com seu próprio geocodificador ou feed AIS quando precisar de nomes de lugares ou rotas ao vivo: este produto mede apenas geometria sobre a esfera. Autores que distribuem SDKs podem mapear cross_track_m e side diretamente em regras de alerta: dispare quando absolute_m exceder a metade da largura do corredor e pinte o mapa de verde, âmbar ou vermelho com os mesmos campos que os estudantes veem ao resolver o triângulo esférico à mão.
Casos de integração
Navegação em sala de aula e oráculos de prova
Os estudantes resolvem à mão problemas esféricos de cross-track; os corretores fixam um JSON determinístico a partir das mesmas coordenadas A, B e P da planilha de exercícios.
Perguntas técnicas
Como calculo a distância cross-track com esta calculadora?
Envie um JSON com lat e lon do ponto de consulta mais start_lat, start_lon, end_lat e end_lon da rota. A resposta inclui cross_track_m com sinal, absolute_m e side (left, right ou on_track).
O que acontece se uma latitude ou longitude estiver fora do intervalo?
A solicitação falha com invalid_input. A latitude deve estar entre −90 e 90; a longitude entre −180 e 180. As falhas de validação não são cobradas.