Caixa delimitadora por raio para latitude e longitude
Uma área de 1000 m em torno de 51,5074, −0,1278 vira os quatro limites do menor retângulo de coordenadas que a envolve, com avisos para o antimeridiano e os polos. Serve de filtro rápido antes de medir a distância exata. 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
- 51,5074
- Longitude
- -0,1278
- Raio (m)
- 1.000
- Latitude mínima
- 51,4984067964
- Longitude mínima
- -0,1422489201
- Latitude máxima
- 51,5163932036
- Longitude máxima
- -0,1133510799
Esta calculadora transforma latitude central, longitude central e raio em metros no menor retângulo geográfico que contém o buffer circular correspondente em uma Terra esférica. O resultado fornece coordenadas mínimas e máximas, além de indicadores de travessia do antimeridiano e cobertura de todas as longitudes. Ela é útil quando seu banco de dados, mapa ou índice espacial precisa de um filtro retangular rápido antes de aplicar um teste de distância mais preciso.
Informe o centro e o raio com unidades claras
A latitude deve ficar entre -90 e 90, a longitude entre -180 e 180 e o raio não pode ser negativo. O raio zero é válido e produz uma caixa degenerada cujos limites identificam o ponto original. O cálculo usa o raio médio da Terra IUGG de 6,371,008.8 metros, um modelo esférico prático para regiões de busca, visualizações de mapa e pré-filtros de banco de dados.
Você não deve apresentar esse retângulo como limite de levantamento topográfico: sua função é conter uma área geodésica circular de modo confiável no modelo indicado. Mantenha a mesma referência de coordenadas no fluxo e não envie quilômetros, milhas ou graus no lugar de metros.
Interprete resultados comuns e travessias do antimeridiano
Em um resultado comum, cada mínimo é numericamente menor que o máximo correspondente, portanto o retângulo pode ser aplicado diretamente a uma consulta por intervalo. Perto de 180 graus, a longitude exige cuidado especial. Não reordene os valores, pois isso selecionaria a grande região complementar.
A latitude continua sendo um intervalo único. Para uma busca confiável, filtre primeiro pela caixa e depois calcule a distância de grande círculo; pertencer ao retângulo não garante pertencer ao buffer circular.
Trate buffers polares e raios globais
Um buffer que alcança um dos polos não pode ser representado por um intervalo estreito de longitude, pois todos os meridianos se encontram no polo. A mesma cobertura total vale quando o raio chega à metade da circunferência esférica. Esse comportamento evita divisões instáveis próximas aos polos e impede uma caixa estreita demais de excluir pontos válidos.
O algoritmo é determinístico, não acessa rede nem dados armazenados e não depende do horário. Assim, ele serve para lotes reproduzíveis, chaves de cache, testes e cálculos no navegador. A caixa é apenas um invólucro eficiente, não um polígono do contorno circular.
Casos de uso
Pré-filtrar locais próximos
Crie intervalos de latitude e longitude compatíveis com índices antes de calcular distâncias exatas em menos candidatos.
Definir a visualização inicial do mapa
Obtenha limites geográficos que contenham um raio ao redor do local, inclusive perto de polos e do antimeridiano.
Distribuir trabalho geoespacial
Converta tarefas de ponto e raio em extensões retangulares estáveis para cache, blocos, filas ou operações espaciais.
Perguntas frequentes
Quanto custa uma solicitação?
O cálculo também pode ser executado no navegador quando houver suporte na página.
Qual modelo da Terra é usado?
O cálculo usa uma esfera com o raio médio da Terra IUGG de 6,371,008.8 metros.
Todo ponto da caixa fica dentro do raio?
Não. A caixa contém o buffer circular, então os cantos podem estar mais distantes. Aplique um teste exato quando necessário.
Como consulto uma caixa que cruza o antimeridiano?
Divida a longitude em duas faixas: da longitude mínima até 180 e de −180 até a máxima. Quando o aviso de cruzamento está ligado, a mínima é maior que a máxima de propósito, então não troque as duas.
O que acontece quando a área alcança um polo?
As longitudes passam a ser −180 e 180 e o aviso de cobertura total é ligado, porque todos os meridianos se encontram no polo. Nesse caso, filtre só pelos limites de latitude e pule o filtro de longitude.
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/buffer-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":51.5074,"lon":-0.1278,"radius_m":1000}'const res = await fetch("https://api.kit.forhosting.com/geo/buffer-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat": 51.5074,
"lon": -0.1278,
"radius_m": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/buffer-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat": 51.5074,
"lon": -0.1278,
"radius_m": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/buffer-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat":51.5074,"lon":-0.1278,"radius_m":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat":51.5074,"lon":-0.1278,"radius_m":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/buffer-bbox", 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": 51.5074,
"lon": -0.1278,
"radius_m": 1000
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.buffer_bbox",
"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
Informe o centro e o raio com unidades claras
Forneça o centro pelos valores decimais lat e lon e informe o raio em metros em radius_m. As coordenadas são arredondadas para dez casas decimais, garantindo JSON estável com precisão útil.
Interprete resultados comuns e travessias do antimeridiano
Os quatro valores principais são min_lat, min_lon, max_lat e max_lon. Se o buffer atravessar o antimeridiano, as longitudes passam de positivas para negativas e crosses_antimeridian será true. Nesse caso, min_lon será maior que max_lon de propósito. Consulte dois intervalos: de min_lon até 180 e de -180 até max_lon.
Trate buffers polares e raios globais
Por isso, a calculadora devolve min_lon igual a -180, max_lon igual a 180 e covers_all_longitudes como true sempre que a faixa de latitude atinge um polo. Nesses casos, crosses_antimeridian é false porque dividir o intervalo não acrescentaria informação. Use os limites de latitude e ignore o filtro de longitude quando covers_all_longitudes for true.
Perguntas técnicas
Por que min_lon pode ser maior que max_lon?
Essa ordem indica travessia do antimeridiano. Trate o resultado como dois intervalos de longitude sem trocar as bordas.
O que acontece quando o buffer alcança um polo?
A longitude passa de -180 a 180 e covers_all_longitudes é true porque todos os meridianos convergem no polo.