Ponto mais próximo em polilinha
Para o ponto 40.73, -74.01 e uma rota de três vértices, o local mais próximo da linha é 40.7227030704, -73.9972969296, no segundo trecho. Você também sabe a que distância do início da rota ele fica e quanto você está afastado dela. 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
- 40,73
- Longitude
- -74,01
- Latitude
- 40,7227030704
- Longitude
- -73,9972969296
- Latitude consultada
- 40,73
- Longitude consultada
- -74,01
Esta ferramenta de ponto mais próximo em polilinha aceita uma coordenada WGS84 de consulta e uma lista ordenada de vértices, projeta-os em um quadro equiretangular local em metros e devolve a localização mais próxima em qualquer segmento finito.
O que o ponto mais próximo em polilinha significa para rotas geográficas
Uma polilinha é uma cadeia ordenada de segmentos retos entre vértices. Dado um ponto de consulta livre que pode ficar fora da rota, o ponto mais próximo na polilinha é a localização em qualquer um desses segmentos que minimiza a distância no solo até a consulta. Essa localização pode cair no interior de um segmento, em um vértice onde dois segmentos se encontram, ou em qualquer extremidade do caminho completo quando a consulta fica além do início ou do fim.
O índice de segmento identifica qual aresta segura o ajuste, contando a partir de zero no primeiro vértice. A distância ao longo da linha mede o quanto você teria percorrido do primeiro vértice até o ajuste se andasse a própria polilinha, o que difere da distância em linha reta da consulta ao ajuste. Juntos esses campos respondem tanto «onde na rota está mais perto de mim?»
quanto «a que distância ao longo da rota está esse lugar?» sem exigir um grafo completo de roteamento nem uma base de rede viária.
Quando vale ajustar um ponto a uma rota
Produtos móveis e de frota projetam amostras GPS ruidosas sobre um corredor planejado para a interface mostrar o progresso ao longo de uma rota em vez de um fix livre trêmulo. Operações de campo e utilities medem quão longe uma equipe ou ativo está de um oleoduto, trilha ou linha de energia sem montar um motor completo de topologia de rede.
Sites de conteúdo e educação que ranqueiam para ponto mais próximo em polilinha se beneficiam de uma ferramenta gratuita ao vivo no navegador cujas respostas coincidem com a automação paga no mesmo módulo puro. Prefira vértices densos o bastante em curvas para cada segmento ficar curto onde a aproximação equiretangular é mais forte; em polilinhas continentais de milhares de quilômetros considere densificar ou dividir se a precisão absoluta ao metro importar nos extremos.
Fixe os campos arredondados nos testes e obtenha ajustes reproduzíveis para mapas, laboratórios LMS e workers na borda sem hospedar o seu próprio stack GIS.
Casos de uso
Ajuste GPS ao eixo de via ou trilha
Projete um fix GPS livre sobre uma polilinha de rota ordenada e mostre lat/lon ajustados mais quanto o usuário avançou ao longo do caminho.
Relatórios de desvio de corredor e cadeia
Meça a distância no solo de ativos a um oleoduto ou alinhamento de trilha e informe a cadeia (distância ao longo) em tickets de manutenção.
Limpeza de trilhas e demos de mapas
Reparametrize pontos de trilha ruidosos como distância ao longo de uma polilinha de projeto em scripts ETL ou widgets educativos de mapa ao vivo.
Perguntas frequentes
Como encontro o ponto mais próximo de uma polilinha a um lat/lon?
Envie lat e lon de consulta mais um array polyline com pelo menos dois vértices {lat, lon}.
E se a minha polilinha tiver só um ponto?
Uma polilinha precisa de pelo menos dois vértices para definir um segmento. Coordenadas fora do intervalo também falham sem faturamento.
Qual a diferença entre a distância ao longo da rota e a distância até ela?
A distância ao longo da rota é o quanto você andaria pela própria linha, do primeiro vértice até o ponto ajustado. A distância até a rota é a separação em linha reta no terreno entre o seu ponto e esse ponto ajustado.
O ponto mais próximo pode ser um vértice ou uma ponta da rota?
Sim. O local mais próximo pode cair no meio de um trecho, em um vértice onde dois trechos se encontram ou no início ou no fim da rota, quando o seu ponto fica além de uma das pontas.
Qual é a precisão em rotas muito longas?
Cada trecho é medido em um plano local, que funciona melhor com trechos curtos. Coloque vértices suficientes em estradas com curvas e divida ou adense rotas de milhares de quilômetros se precisar de precisão de metros.
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/nearest-point-on-polyline \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}'const res = await fetch("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/nearest-point-on-polyline",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/nearest-point-on-polyline", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":40.7128,"lon":-74.006,"polyline":[{"lat":40.7,"lon":-74.02},{"lat":40.72,"lon":-74},{"lat":40.74,"lon":-73.98}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/nearest-point-on-polyline", 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": 40.7128,
"lon": -74.006,
"polyline": [
{
"lat": 40.7,
"lon": -74.02
},
{
"lat": 40.72,
"lon": -74
},
{
"lat": 40.74,
"lon": -73.98
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.nearest_point_on_polyline",
"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
Encontrar o ponto mais próximo de uma polilinha a uma latitude e longitude livres é um primitivo central de SIG e roteamento: apps de mapas projetam um fix GPS sobre o eixo de uma via, ferramentas logísticas medem quão longe um veículo está de um corredor planejado e scripts de levantamento mostram quanto você já avançou ao longo de um caminho. Você obtém a latitude e longitude projetadas, o índice de segmento base zero, a posição fracionária nesse segmento, a distância ao longo da linha a partir do primeiro vértice, o comprimento total da polilinha e a distância no solo da consulta ao ponto de ajuste.
O que o ponto mais próximo em polilinha significa para rotas geográficas
No espaço geográfico cada vértice é uma latitude e uma longitude na esfera WGS84, e cada segmento é a corda curta entre dois vértices consecutivos após uma projeção cartográfica local.
Contrato de entrada, algoritmo, forma da resposta e erros
Internamente o solucionador toma a média dos vértices da polilinha como origem equiretangular, converte cada vértice e a consulta em metros leste-norte locais e, para cada segmento finito, projeta a consulta na reta infinita e limita o parâmetro t ao intervalo unitário fechado para o candidato permanecer no segmento. Entre todos os segmentos mantém a distância ao quadrado mínima e, em empates exatos, prefere o segmento anterior por um contrato estável. Duplicatas consecutivas de comprimento zero são ignoradas assim que existe um segmento real. Envie um corpo JSON com lat e lon do ponto de consulta, ambos números finitos nos intervalos WGS84 habituais de menos noventa a noventa e de menos cento e oitenta a cento e oitenta, mais polyline como um array ordenado de pelo menos dois vértices com lat e lon cada um. O opcional radius_m tem padrão de seis milhões trezentos e setenta e um mil metros para o escalonamento da Terra média. Alias de campo como latitude, longitude, lng, vertices, points e path são aceitos para que cargas GIS existentes precisem de menos reescrita. O sucesso devolve lat e lon do ajuste, query_lat e query_lon ecoados, segment_index, t, distance_along_m e distance_along_km, distance_to_m e distance_to_km, comprimento da polilinha em ambas as unidades, vertex_count, segment_count, on_vertex, radius_m e method equirectangular_polyline. Coordenadas fora do intervalo, menos de dois vértices, números não finitos e polilinha ausente geram invalid_input e não são faturados.
Onde uma API de ponto mais próximo em polilinha vale a pena
Pipelines de dados que limpam trilhas importadas usam o ajuste mais distance_along_m para reparametrizar pontos como cadeia ao longo de um alinhamento de projeto. Como a implementação é parse puro de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo nem rede de saída, e a validação falha não consome saldo.
Perguntas técnicas
O que é segment_index?
Um índice base zero da aresta da polilinha que contém o ponto mais próximo. O segmento 0 vai do primeiro vértice ao segundo, o 1 do segundo ao terceiro, e assim por diante.
Como a distância ao longo da linha é medida?
distance_along_m é o comprimento no solo do primeiro vértice até o ponto de ajuste seguindo os segmentos da polilinha, não a distância em linha reta da consulta ao ajuste.
Quanto custa a ferramenta de ponto mais próximo em polilinha?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é faturada.