Distância de ponto a linha de círculo máximo
O ponto na latitude 10, longitude 20 está a 10° de arco, ou 1111.950802335 km, do círculo máximo que passa por 0, 0 e 0, 90. Diferente de um trecho, essa linha continua ao redor do globo além dos dois pontos. 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 do ponto
- 10
- Longitude do ponto
- 20
- Latitude de início da linha
- 0
- Longitude de início da linha
- 0
- Latitude de fim da linha
- 0
- Longitude de fim da linha
- 90
- Raio (m)
- 6.371.008,8
- Distância (m)
- 1.111.950,802335329
- Distância (km)
- 1.111,950802335
- Distância angular (graus)
- 10
Diferentemente de um cálculo de segmento, ela não termina nos pontos definidores: a linha continua ao redor do globo nas duas direções. O resultado inclui metros, quilômetros e graus angulares, usa por padrão o raio médio da Terra e aceita um raio esférico personalizado para outro corpo ou escala geométrica.
Defina o ponto e a linha infinita de círculo máximo
Juntas, definem um círculo máximo: a interseção da esfera com um plano que passa pelo centro. O cálculo considera esse círculo uma linha infinita, que segue além dos dois pontos e acaba dando a volta no globo. Essa distinção importa quando o pé da perpendicular fica fora do arco menor entre os pontos definidores.
Um cálculo de segmento escolheria uma extremidade, enquanto esta capacidade continua medindo até o círculo máximo estendido. Os pontos definidores não podem ser iguais nem antípodas, pois nenhuma dessas opções identifica um plano único.
Entenda o cálculo esférico e a resposta
Cada coordenada é convertida em um vetor unitário tridimensional a partir do centro da esfera. O produto vetorial dos dois vetores da linha fornece uma normal ao plano do círculo máximo. Depois da normalização, o valor absoluto do produto escalar dessa normal com o vetor do ponto consultado fornece o seno da separação angular perpendicular.
O arco seno produz o menor ângulo sem sinal entre o ponto e o círculo máximo. O raio padrão é 6,371,008.8 metros, o raio médio da Terra adotado pela IUGG, mas você pode fornecer outro raio positivo. Este é um cálculo esférico, e não uma solução geodésica elipsoidal.
A representação vetorial evita a distorção plana das longitudes e trata naturalmente linhas que cruzam o antimeridiano.
Interprete corretamente a menor distância
A distância retornada é sempre não negativa e responde a uma pergunta específica: qual é a distância do ponto consultado ao local mais próximo em qualquer parte do círculo máximo completo? Ela não informa se o ponto está à esquerda ou à direita de uma rota orientada, quanto é preciso avançar na rota até o pé perpendicular nem se esse pé fica entre as coordenadas definidoras. Essas perguntas exigem lógica de distância transversal com sinal ou de segmento.
Um resultado zero significa que o ponto pertence ao mesmo plano de círculo máximo dentro da precisão de ponto flutuante, mesmo que esteja muito além do arco fornecido. Ao comparar o valor com medições locais, lembre-se de que a Terra é tratada como esfera. O planeta real é um elipsoide oblato, o terreno acrescenta elevação e trajetos práticos podem seguir estradas ou espaços autorizados.
Para automações reproduzíveis, guarde o raio de entrada. Inverter os pontos muda o sinal da normal, mas nunca esta distância absoluta.
Casos de uso
Verificar uma rota aérea estendida
Meça a distância de um waypoint à geodésica completa definida por duas coordenadas, mesmo quando o pé mais próximo fica além do arco informado.
Validar geometria cartográfica global
Confira se coordenadas destinadas ao mesmo círculo máximo respeitam uma tolerância esférica sem projetá-las em um mapa plano.
Modelar outro corpo esférico
Forneça um raio personalizado para calcular a distância equivalente em um planeta, lua, globo ou esfera abstrata.
Perguntas frequentes
A linha se limita ao arco entre os dois pontos?
Não. O cálculo usa o círculo máximo completo, que se estende pelos dois pontos nas duas direções.
Por que pontos iguais ou antípodas são rejeitados?
Nenhum desses pares identifica um único plano de círculo máximo; portanto, a linha seria ambígua.
A calculadora utiliza o elipsoide WGS 84?
Não. Ela usa por padrão uma esfera com o raio médio da Terra da IUGG ou um raio personalizado informado por você.
Inverter os dois pontos altera a resposta?
Não. A inversão troca o sinal da normal do plano, mas a distância perpendicular absoluta permanece igual.
A ferramenta diz de que lado da rota o ponto está?
Não. A distância é sempre sem sinal. Ela não informa se o ponto fica à esquerda ou à direita de uma rota, em que altura da rota está o local mais próximo nem se esse local fica entre os dois pontos.
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/point-to-line-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}'const res = await fetch("https://api.kit.forhosting.com/geo/point-to-line-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/point-to-line-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/point-to-line-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"point_lat":10,"point_lon":20,"line_start_lat":0,"line_start_lon":0,"line_end_lat":0,"line_end_lon":90}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/point-to-line-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
{
"point_lat": 10,
"point_lon": 20,
"line_start_lat": 0,
"line_start_lon": 0,
"line_end_lat": 0,
"line_end_lon": 90
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.point_to_line_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 calculadora mede a menor distância esférica de uma coordenada de latitude e longitude até o círculo máximo completo definido por outras duas coordenadas.
Defina o ponto e a linha infinita de círculo máximo
Informe a coordenada consultada em point_lat e point_lon e, em seguida, forneça duas coordenadas que pertençam à linha desejada. Elas são line_start_lat com line_start_lon e line_end_lat com line_end_lon. A latitude deve ficar entre -90 e 90 graus e a longitude entre -180 e 180 graus. Você pode enviar graus decimais como números ou strings numéricas estritas, tanto em formulários quanto em chamadas estruturadas da API.
Entenda o cálculo esférico e a resposta
Multiplicar esse ângulo por radius_m gera distance_m, enquanto distance_km é o mesmo valor dividido por mil. A resposta também inclui angular_distance_deg para quem trabalha diretamente com ângulos esféricos.
Perguntas técnicas
Quanto custa uma solicitação da API?
Cada solicitação da API custa US$ 0,002. A calculadora do navegador pode ser executada localmente de graça.