Verificar geocerca circular
Um ponto a 6283,257836 m do centro de uma geocerca de 10000 m está dentro, com 3716,742164 m de folga. Informe o ponto, o centro e o raio para obter a distância por haversine e uma margem com sinal que fica negativa fora. 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
- 40,73061
- Longitude do ponto
- -73,935242
- Latitude do centro
- 40,7128
- Longitude do centro
- -74,006
- Raio (m)
- 10.000
- Distância (m)
- 6.283,257836
- Margem (m)
- 3.716,742164
Ele calcula a distância de grande círculo pela fórmula de Haversine, compara essa distância com o raio em metros e retorna uma margem com sinal que mostra o espaço restante. Uma margem positiva indica que o ponto está dentro, zero marca a borda e uma margem negativa informa quanto ele está fora. O cálculo é determinístico e não precisa de mapas, consulta de dispositivo nem solicitação de rede.
Defina claramente o ponto, o centro e o raio
Não envie coordenadas projetadas, textos em graus, minutos e segundos, nem um raio em quilômetros sem convertê-lo antes. O verificador aceita zero como raio útil; nesse caso, somente um ponto exatamente nas mesmas coordenadas do centro fica dentro. Valores ausentes, números não finitos, coordenadas fora dos intervalos legais e raios negativos são rejeitados, em vez de uma provável falha de integração ser corrigida silenciosamente.
Longitudes em lados opostos do antimeridiano funcionam sem lógica especial do cliente, pois a fórmula trigonométrica usa naturalmente a menor separação esférica.
Interprete a inclusão, a distância e a margem com sinal
A resposta contém quatro campos compactos. Essa margem com sinal costuma ser mais útil que apenas um booleano: 240 significa que o ponto está dentro com cerca de 240 metros disponíveis; zero indica a borda; e menos 85 significa que está aproximadamente 85 metros fora. As distâncias de saída são arredondadas para seis casas decimais, garantindo serialização estável, mas a decisão inside usa o cálculo completo sem arredondamento.
Assim, um valor exibido após arredondamento não muda a comparação real. Para políticas de rota ou cobrança, escolha antecipadamente uma folga operacional ou compare a margem retornada com seu próprio limite de segurança.
Use o resultado com segurança em operações reais
Verificações circulares são adequadas para detectar chegadas, decidir elegibilidade de entrega, emitir alertas sobre equipamentos próximos e definir zonas aproximadas de acesso. Elas não representam divisas legais e não consideram estradas, paredes, altitude, andares de edifícios ou incerteza do GPS. A localização de um telefone pode oscilar vários metros; por isso, aplicações em produção normalmente exigem leituras repetidas, um limite de precisão ou histerese antes de iniciar uma ação irreversível.
O modelo esférico de Haversine é consistente e rápido no mundo inteiro, inclusive perto dos polos e do antimeridiano, mas continua sendo uma aproximação, não um cálculo topográfico elipsoidal. Entradas iguais sempre produzem a mesma saída, pois o solucionador não usa rede, horário atual, aleatoriedade nem banco externo de mapas. Guarde as coordenadas originais com o resultado quando auditorias futuras precisarem explicar a decisão.
Casos de uso
Elegibilidade de entrega
Verifique se a coordenada do cliente está no raio de atendimento e use a margem para explicar a proximidade do limite.
Lógica de chegada e saída
Avalie leituras de dispositivos contra uma geocerca e aplique um limite positivo ou negativo para reduzir oscilações na borda.
Alertas de proximidade de ativos
Determine se a posição informada de um ativo entrou em uma zona monitorada sem consultar um provedor externo de mapas.
Perguntas frequentes
Um ponto na borda conta como interno?
Sim. A inclusão usa distância menor ou igual ao raio; portanto, a borda exata retorna inside verdadeiro e margem zero.
Quais unidades são usadas?
O raio, a distância calculada e a margem estão em metros. Latitude e longitude são informadas em graus decimais.
Qual fórmula de distância é aplicada?
O solucionador usa a fórmula de Haversine em uma esfera terrestre média com raio de 6,371,000 metros.
O que a margem indica?
É o raio menos a distância. Uma margem positiva como 240 significa que o ponto está dentro com cerca de 240 m de folga, zero que está exatamente na borda e menos 85 que está cerca de 85 m fora.
O raio pode ser zero?
Sim. Com raio zero, só um ponto com exatamente as mesmas coordenadas do centro conta como interno; qualquer outro fica fora por toda a sua distância.
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/geofence-circle-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}'const res = await fetch("https://api.kit.forhosting.com/geo/geofence-circle-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geofence-circle-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"point_lat": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geofence-circle-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"point_lat":40.73061,"point_lon":-73.935242,"center_lat":40.7128,"center_lon":-74.006,"radius_m":10000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geofence-circle-check", 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": 40.73061,
"point_lon": -73.935242,
"center_lat": 40.7128,
"center_lon": -74.006,
"radius_m": 10000
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geofence_circle_check",
"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
Este verificador de geocerca circular determina se um ponto de latitude e longitude fica dentro, exatamente sobre o limite ou fora de um raio ao redor de uma coordenada central.
Defina claramente o ponto, o centro e o raio
Uma geocerca circular possui três partes essenciais: latitude central, longitude central e raio não negativo medido em metros. A latitude e a longitude separadas do ponto identificam o local que você deseja verificar. Informe todas as coordenadas em graus decimais nos intervalos geográficos WGS84 usuais: latitude de menos noventa a noventa e longitude de menos cento e oitenta a cento e oitenta. Por exemplo, uma área de entrega com alcance de cinco quilômetros exige radius_m igual a 5000.
Interprete a inclusão, a distância e a margem com sinal
O booleano inside é verdadeiro quando a distância calculada é menor ou igual ao raio; portanto, um ponto exatamente na borda pertence à geocerca. distance_m é a distância de grande círculo entre o centro e o ponto sobre uma esfera terrestre média de raio 6,371,000 metros. radius_m repete o raio validado, enquanto margin_m subtrai a distância do raio.
Use o resultado com segurança em operações reais
Por exemplo, um fluxo de chegada pode entrar apenas quando margin_m passar de vinte metros e sair quando cair abaixo de menos vinte, evitando mudanças rápidas perto da borda. A execução interativa está disponível no navegador, e solicitações API automatizadas custam US$ 0,002 cada.
Perguntas técnicas
O que significa uma margem positiva?
O ponto está dentro da geocerca, e margin_m é a distância restante até o limite circular.
Quanto custa uma verificação pela API?
Cada solicitação API bem-sucedida custa US$ 0,002. O executor determinístico no navegador também permite verificações interativas.