Matriz de distâncias entre pontos geográficos
Informe até 200 pontos e receba todas as distâncias por círculo máximo entre cada par, em quilômetros, numa tabela: três pontos geram uma grade 3 × 3 com zeros na diagonal e cada distância espelhada. Linhas e colunas seguem a sua ordem. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
A calculadora de matriz de distâncias transforma uma lista ordenada de coordenadas de latitude e longitude em todas as distâncias de grande círculo, em quilômetros. Ela ajuda a preparar roteiros, agrupar locais e analisar proximidade antes da escolha de percursos. A saída mantém a ordem de entrada, insere zeros na diagonal e espelha cada distância no lado oposto da matriz. O cálculo não consulta serviços externos e sempre devolve o mesmo resultado para as mesmas coordenadas.
Organize as coordenadas na ordem necessária
Envie de dois a 200 pontos, cada um com <code>lat</code> e <code>lon</code> numéricas em graus decimais. A latitude deve ficar entre -90 e 90, e a longitude entre -180 e 180. A posição do ponto na lista determina sua linha e coluna, portanto defina uma ordem estável antes do cálculo.
Se um depósito vier primeiro e as entregas aparecerem depois, a linha zero mostrará as distâncias do depósito às paradas, enquanto a coluna zero terá os mesmos valores no sentido inverso. A ferramenta não reordena, combina, geocodifica nem nomeia pontos. Mantenha seus identificadores junto da lista e associe-os pelo índice.
Coordenadas duplicadas são aceitas e geram corretamente distância zero, mesmo quando representam registros comerciais separados. Confira a origem dos dados, sobretudo em planilhas nas quais as colunas de latitude e longitude podem ter sido trocadas. Essa conferência evita uma matriz numericamente válida, porém geograficamente inútil.
Entenda o cálculo da matriz simétrica
Cada par único é avaliado pela fórmula de Haversine com raio médio da Terra de 6,371.0088 quilômetros. A fórmula mede o arco mais curto sobre uma esfera, conhecido como distância de grande círculo. A implementação calcula somente o triângulo superior, copia cada valor para a posição espelhada e fixa a diagonal exatamente em zero.
Isso garante simetria sem repetir operações de ponto flutuante que poderiam divergir na última casa decimal. A distância de grande círculo é geográfica e em linha reta, não uma rota rodoviária, ferroviária, marítima ou para pedestres. Ela ignora relevo, restrições de acesso, ruas de mão única, pontes e fronteiras.
Use-a como matriz analítica, heurística inicial ou filtro. Caso você precise de tempos reais ou distâncias trafegáveis, envie depois os pares selecionados a um serviço de roteamento viário.
Aplique o resultado com segurança
Como a distância geográfica não tem direção, a posição inversa contém o mesmo valor. Essa estrutura pode alimentar algoritmos de agrupamento, seleção do vizinho mais próximo, árvore geradora mínima, comparação de instalações ou uma heurística inicial do caixeiro-viajante. O armazenamento cresce quadraticamente: 200 pontos produzem 40,000 células numéricas, razão do limite rígido.
Para coleções maiores, separe os dados em regiões relevantes ou calcule apenas os pares necessários. Um otimizador pode usar a saída como matriz de custos, mas não deve presumir que há uma estrada disponível. Guarde as coordenadas originais ordenadas com o resultado para rastrear os índices.
Casos de uso
Iniciar uma heurística de roteiros
Crie a tabela geográfica completa exigida por algoritmos de vizinho mais próximo ou inserção antes de consultar rotas viárias.
Comparar instalações candidatas
Meça todas as separações entre depósitos e destinos em uma matriz ordenada para analisar localizações.
Agrupar paradas próximas
Use distâncias em quilômetros como entrada determinística para fluxos de agrupamento por limite, grafo ou proximidade.
Perguntas frequentes
Estas são distâncias de carro?
Não. São distâncias de grande círculo sobre uma Terra esférica e não acompanham estradas nem restrições de viagem.
Qual unidade a matriz utiliza?
Todos os valores da matriz estão em quilômetros, e a resposta informa explicitamente a unidade.
Por que a matriz é simétrica?
A distância do ponto A ao ponto B é igual à do ponto B ao ponto A; por isso, as células espelhadas coincidem.
Quantos pontos podem ser enviados?
Cada solicitação aceita de dois a 200 pontos. O limite controla o cálculo quadrático e o tamanho da resposta.
Qual fórmula e qual raio da Terra são usados?
A fórmula de haversine sobre uma esfera com raio médio de 6371,0088 km. Ela mede o arco mais curto entre dois pontos, ou seja, a distância por círculo máximo, em linha reta pelo ar.
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/distance-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}'const res = await fetch("https://api.kit.forhosting.com/geo/distance-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/distance-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/distance-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"lat":40.7128,"lon":-74.006},{"lat":51.5074,"lon":-0.1278},{"lat":35.6762,"lon":139.6503}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/distance-matrix", 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
{
"points": [
{
"lat": 40.7128,
"lon": -74.006
},
{
"lat": 51.5074,
"lon": -0.1278
},
{
"lat": 35.6762,
"lon": 139.6503
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.distance_matrix",
"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.
Limites
max_items | 200 |
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
Entenda o cálculo da matriz simétrica
Os resultados são arredondados para seis casas, produzindo JSON estável.
Aplique o resultado com segurança
A resposta traz <code>point_count</code>, a unidade fixa <code>km</code> e <code>distances_km</code> como uma matriz quadrada. A entrada <code>distances_km[i][j]</code> informa a distância do ponto <code>i</code> ao ponto <code>j</code>. Como o cálculo é puro e não usa rede, chamadas com JSON idêntico são reproduzíveis.
Perguntas técnicas
Quanto custa uma solicitação?
O preço da API é US$ 0,002 por solicitação. A versão no navegador pode ser executada localmente sem chamar a API.