ForHosting KIT · Viagens e geografia

Interpolação de círculo máximo: lat/lon intermediários entre dois pontos

Na metade do círculo máximo entre (40,7128; -74,006) e (51,5074; -0,1278) fica (52,3684395875; -41,2903073562), mais ao norte que as duas pontas. Escolha qualquer fração de 0 a 1 para posicionar um ponto na rota e ver a distância desde a origem. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Lat 1
40,7128
Lon 1
-74,006
Lat 2
51,5074
Lon 2
-0,1278
Fração
0,5
Você obtém
Raio da Terra m
6.371.000
Distância angular graus
50,0942115601
Distância total m
5.570.222,17974
Distância desde o início m
2.785.111,08987

A interpolação de círculo máximo responde a uma pergunta simples de navegação: dados dois pontos fixos de latitude e longitude e uma fração entre zero e um, onde está o ponto intermediário situado a essa fração do arco esférico mais curto que os liga? Misturar linearmente latitude e longitude de forma independente é errado, porque os meridianos convergem e as longitudes dão a volta; a construção correta trata a Terra como uma esfera, converte cada extremidade em um vetor unitário e aplica a interpolação linear esférica (slerp), de modo que cada amostra intermediária fica sobre o único círculo máximo que passa pelos dois pontos. A fração zero retorna o início, a fração um retorna o fim e um meio retorna o ponto médio geodésico.

Como os pontos intermediários do círculo máximo são calculados

Converta as duas extremidades de graus decimais para radianos e forme os vetores unitários n1 e n2 na esfera. O ângulo central δ entre eles decorre da lei esférica dos cossenos: cos δ é igual a sin φ1 sin φ2 mais cos φ1 cos φ2 cos(λ2 − λ1), com um corte no intervalo de menos um a mais um antes do arco cosseno, para que o ruído de ponto flutuante nunca saia do domínio. Quando sin δ é praticamente zero e os pontos coincidem, toda fração retorna a coordenada inicial.

Caso contrário, calculam-se os pesos clássicos do slerp: A igual a sin de um menos f vezes δ sobre sin δ, e B igual a sin de f vezes δ sobre sin δ. O vetor unitário intermediário é A vezes n1 mais B vezes n2; a latitude é o arco tangente de z sobre a hipotenusa horizontal, e a longitude é o arco tangente de dois argumentos de y sobre x, depois dobrada no intervalo semiaberto em torno do antimeridiano.

Onde a interpolação de círculo máximo aparece no trabalho real

O treinamento de aviação e marítimo vive propondo problemas de posições intermediárias ao longo de rotas de círculo máximo, e os alunos precisam de um oráculo confiável que retorne lat/lon na fração f sem compasso de ponta seca. Equipes de GIS e logística densificam longos trechos aéreos ou de navegação em amostras uniformemente espaçadas para mapas de calor, estimativas de combustível e corredores de geocerca antes de adotar bibliotecas completas de elipsoide.

Planejamento de busca e salvamento, guias de trilha e cursos de orientação posicionam pontos de controle por fração ao longo de um arco planejado entre duas posições conhecidas. Motores de jogos e simulação animam entidades ao longo de rotas esféricas usando a mesma forma fechada, para que cliente e servidor permaneçam alinhados sem embutir um pacote geodésico pesado. Cartógrafos que criam arcos animados em mapas web amostram pontos intermediários em frações regulares para desenhar polilinhas geodésicas suaves que não cortam a Terra numa projeção plana.

Se mais tarde você precisar do problema direto do destino a partir de rumo e distância, da navegação por loxodromia, das coordenadas do antípoda ou das geodésicas Vincenty completas no elipsoide WGS84, trate-os como intenções de busca e páginas de destino separadas, em vez de sobrecarregar esta página de interpolação de círculo máximo.

Treinamento de navegação e posições intermediárias

Calcule a lat/lon intermediária na fração f ao longo de um trecho de círculo máximo, para que instrutores e corretores automáticos compartilhem uma única referência nos exercícios em alto-mar e em pleno voo.

Densifique rotas aéreas e de navegação

Amostre waypoints uniformemente espaçados entre origem e destino para mapas, modelos de combustível e geocercas de corredor, sem uma pilha completa de elipsoide.

Qual fórmula esta interpolação de círculo máximo usa?

Interpolação linear esférica (slerp): ângulo central δ pela lei esférica dos cossenos, pesos A = sin((1−f)δ)/sin δ e B = sin(fδ)/sin δ, vetor unitário intermediário A·n1 + B·n2, e depois φ e λ via atan2.

O que acontece se a fração estiver fora de 0 a 1?

A fração deve estar no intervalo fechado [0, 1]. Valores fora dessa faixa não dão a volta nem são truncados.

A média linear de latitude e longitude é correta?

Não. Calcular a média de latitudes e longitudes de forma independente ignora a geometria esférica e a volta da longitude. Esta ferramenta interpola na esfera unitária, então cada amostra fica sobre o arco do círculo máximo.

E se as extremidades forem antípodas?

Quando os dois pontos são opostos (ou quase opostos) na esfera, infinitos círculos máximos os ligam.

Quanto custa?

A ferramenta do navegador é gratuita e roda localmente.

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.

POSThttps://api.kit.forhosting.com/geo/geodesic-interpolate

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/geo/geodesic-interpolate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"lat1":40.7128,"lon1":-74.006,"lat2":51.5074,"lon2":-0.1278,"fraction":0.5}'
{
  "lat1": 40.7128,
  "lon1": -74.006,
  "lat2": 51.5074,
  "lon2": -0.1278,
  "fraction": 0.5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "geo.geodesic_interpolate",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Valores fora do intervalo unitário fechado são rejeitados com um erro invalid_input claro, em vez de dar a volta ou inventar um ponto além do segmento.

Como os pontos intermediários do círculo máximo são calculados

Quando os pontos são antípodas, sin δ também é zero, mas o plano do círculo máximo não é único, então a requisição falha com invalid_input em vez de escolher silenciosamente um caminho arbitrário. Todo o pipeline é aritmética determinística de ponto flutuante: sem sementes aleatórias, sem carimbos de tempo, sem chamadas de rede e sem desvio de modelo, de modo que entradas idênticas sempre produzem um JSON idêntico, adequado para testes automatizados e gabaritos.

O que você envia e o que recebe de volta

As latitudes devem estar no intervalo fechado de menos noventa a mais noventa graus, com o norte positivo. As longitudes devem estar no intervalo fechado de menos cento e oitenta a mais cento e oitenta graus, com o leste positivo. Os apelidos opcionais latitude1, longitude1, latitude2, longitude2 e f também são aceitos por conveniência. Verificações clássicas incluem Nova York a Londres na fração um meio para uma amostra no meio do Atlântico, pontos de quarto de equador e as frações zero ou um retornando as extremidades exatas. Envie cinco números finitos obrigatórios nos campos lat1, lon1, lat2, lon2 e fraction. A fração deve estar no intervalo fechado de zero a um, inclusive; qualquer valor estritamente fora dessa faixa falha com invalid_input e não é cobrado. Você também pode passar earth_radius_m como raio esférico finito e positivo ao informar comprimentos de arco: a latitude e a longitude intermediárias na esfera unitária não dependem do raio, mas total_distance_m e distance_from_start_m escalam com ele; o padrão é o raio médio convencional da Terra, de seis milhões trezentos e setenta e um mil metros. Em caso de sucesso, a resposta ecoa as extremidades e a fração depuradas, a separação angular das extremidades em graus, o comprimento total do arco e a distância desde o início em metros, um objeto intermediate com latitude e longitude, os campos simples intermediate_latitude e intermediate_longitude para clientes simples, a etiqueta de método great_circle_slerp e uma string de fórmula compacta para documentação. O preço das chamadas de API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.

Onde a interpolação de círculo máximo aparece no trabalho real

Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação malsucedida não consome saldo.

Arcos geodésicos animados e simulações

Animações de mapa e entidades de jogo percorrem trajetórias esféricas ao avançar a fração de 0 a 1, com resultados idênticos no navegador e na API.

Ver a documentação completa do KIT →