Perímetro de polígono geográfico
O anel (0, 0), (0, 1), (1, 1), (1, 0) mede 444,763384955 km de contorno, ou 276,363154773 milhas, por lados de círculo máximo sobre uma esfera. O último ponto se liga sozinho ao primeiro, então o percurso fica sempre fechado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Quando você já tem um anel fechado ou ordenado de coordenadas geográficas — o limite de um lote, uma zona de entrega, uma transecta de levantamento ou uma rota de voo que retorna ao ponto de partida — a grandeza que importa em seguida é o comprimento real ao redor da borda. Fórmulas de mapa plano subestimam ou superestimam esse comprimento dependendo da latitude e da projeção. Esta capacidade aceita uma lista ordenada de vértices de latitude e longitude e devolve o perímetro esférico de círculo máximo usando um modelo haversine fixo, para que todo chamador obtenha os mesmos metros, quilômetros ou milhas para o mesmo anel.
Por que as fórmulas planas de perímetro enganam na Terra
Fórmulas de planilha que tratam latitude e longitude como x e y cartesianos ignoram o fato de que um grau de longitude encolhe em direção aos polos e de que os caminhos mais curtos entre pontos distantes seguem círculos máximos sobre uma esfera. Uma linha de cerca traçada por vários graus de longitude em alta latitude é mais curta do que o mesmo vão angular perto do equador; uma borda “reta” numa base Web Mercator não é uma geodésica.
Equipes de levantamento, planejadores de logística e pipelines de GIS precisam, portanto, de uma definição esférica compartilhada, em vez de cada produto inventar sua própria matemática de projeção local. Você não escolhe uma época de elipsoide nem uma projeção de mapa: o contrato é de propósito simples, analítico e estável para integrações de produto que só precisam de um número de perímetro confiável.
O que enviar: vértices ordenados e uma unidade opcional
Forneça vertices como um array de objetos com lat e lon (os apelidos latitude, longitude e lng são aceitos). Os valores devem ser números finitos com a latitude no intervalo fechado de menos noventa a noventa e a longitude de menos cento e oitenta a cento e oitenta. Se o primeiro e o último ponto já coincidirem dentro de um pequeno epsilon de grau, a entrada é tratada como um anel explicitamente fechado e o vértice de fechamento duplicado não é contado duas vezes.
Caso contrário, o último vértice é reconectado ao primeiro, para que o perímetro sempre descreva um laço fechado. A unidade opcional seleciona o campo primário de perímetro: m para metros, km para quilômetros ou mi para milhas terrestres. A resposta sempre inclui o perímetro na unidade escolhida mais o mesmo comprimento em metros, quilômetros e milhas, além da contagem de segmentos, da contagem de vértices do anel, se a entrada já estava fechada e a constante de raio da Terra usada no cálculo haversine.
Casos de uso
Estimativas de comprimento de lote e cerca
Transforme um anel de limite cadastral ou desenhado num comprimento aproximado de cerca ou muro em metros ou milhas antes de encomendar materiais.
QA de zonas de entrega e serviço
Verifique se geoJSON importado ou polígonos administrativos têm perímetros plausíveis ao incorporar novas áreas de cobertura.
Resumos de laços de rota e trilhas de levantamento
Meça laços fechados de voo, barco ou caminhada de campo a partir de vértices de GPS ordenados sem puxar uma pilha completa de GIS de desktop.
Perguntas frequentes
Como o perímetro do polígono geográfico é calculado?
Cada par consecutivo de vértices é medido com a fórmula haversine de círculo máximo sobre um raio médio fixo da Terra de 6.371.008,8 metros. O anel ordenado é fechado automaticamente quando o primeiro e o último pontos diferem, e os comprimentos dos segmentos são somados.
De quantos vértices preciso?
Pelo menos dois. Um ponto não tem borda; zero pontos é vazio. Dois pontos formam um laço fechado em estilo dígono (ida e volta). Polígonos típicos usam três ou mais vértices distintos.
O anel de entrada precisa já estar fechado?
Não. Se a primeira e a última coordenada já coincidem dentro de um epsilon minúsculo, a duplicata não é contada duas vezes. Se diferem, o serviço adiciona o segmento de fechamento do último vértice de volta ao primeiro.
Isto é uma geodésica de elipsoide ou apenas uma esfera?
É um modelo esférico de círculo máximo (haversine) com raio médio constante — rápido e determinístico para uso em produto, não uma geodésica elipsoidal completa de Vincenty ou Karney. Para levantamento de precisão centimétrica, use uma biblioteca especializada de geodésia.
Devo simplificar um registro de GPS com ruído antes de medir?
Sim. Registros brutos com enormes quantidades de amostras tremidas somam um comprimento que não existe de verdade. Mantenha os anéis em dezenas ou milhares de vértices e suavize o registro antes, para que o perímetro reflita o limite que você queria.
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/polygon-perimeter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":1},{"lat":1,"lon":1},{"lat":1,"lon":0}]}'const res = await fetch("https://api.kit.forhosting.com/geo/polygon-perimeter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vertices": [
{
"lat": 0,
"lon": 0
},
{
"lat": 0,
"lon": 1
},
{
"lat": 1,
"lon": 1
},
{
"lat": 1,
"lon": 0
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/polygon-perimeter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vertices": [
{
"lat": 0,
"lon": 0
},
{
"lat": 0,
"lon": 1
},
{
"lat": 1,
"lon": 1
},
{
"lat": 1,
"lon": 0
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/polygon-perimeter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":1},{"lat":1,"lon":1},{"lat":1,"lon":0}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vertices":[{"lat":0,"lon":0},{"lat":0,"lon":1},{"lat":1,"lon":1},{"lat":1,"lon":0}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/polygon-perimeter", 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
{
"vertices": [
{
"lat": 0,
"lon": 0
},
{
"lat": 0,
"lon": 1
},
{
"lat": 1,
"lon": 1
},
{
"lat": 1,
"lon": 0
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.polygon_perimeter",
"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
Por que as fórmulas planas de perímetro enganam na Terra
Este endpoint implementa o clássico comprimento de segmento haversine sobre um raio médio fixo da Terra e soma as bordas consecutivas do anel ordenado, de modo que o resultado seja reproduzível entre linguagens, runtimes e canais de cobrança.
O que enviar: vértices ordenados e uma unidade opcional
São exigidos pelo menos dois vértices; menos pontos não conseguem definir uma borda e são rejeitados com invalid_input sem cobrança.
Como usar o resultado em produtos e pipelines
Mantenha os anéis modestos — dezenas a milhares de vértices, e não despejos brutos de GPS com centenas de milhares de amostras — e simplifique trilhas ruidosas antes de medir, para que o perímetro reflita o limite pretendido, e não o tremor do GPS. Chame a ferramenta gratuita do navegador para verificações interativas, ou envie o mesmo contrato JSON à API para jobs em lote que validam importações cadastrais, estimam trechos de cerca e cabo, comparam contornos de zonas de entrega ou pontuam laços de rota. O preço publicado é US$ 0,002 por item bem-sucedido; a validação que falha não consome saldo. Quando você precisar de geodésia de nível elipsoide ou de área sobre um elipsoide de referência, use uma pilha dedicada de levantamento; quando precisar de um comprimento de anel de círculo máximo rápido e compartilhado que coincida entre web e API, esta capacidade é a escolha certa.
Perguntas técnicas
É gratuito, e quanto custa a API?
A ferramenta no navegador é gratuita e roda localmente. O uso da API é do saldo pré-pago do KIT a US$ 0,002 por requisição bem-sucedida. Entrada inválida falha sem cobrança.