Lat/lon para tile: índice X/Y Web Mercator e zoom, grátis
Descubra qual tile de mapa web contém um ponto: (51,5074; -0,1278) no zoom 12 cai no tile 12/2046/1362, coluna 2046 e linha 1362. Você também recebe as bordas do tile e o caminho z/x/y pronto para usar. 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 geográfica
- 51,5074
- Longitude geográfica
- -0,1278
- Nível de zoom
- 12
- N
- 4.096
- X
- 2.046
- Y
- 1.362
- Z
- 12
Calculadoras de tiles de mapa respondem a uma pergunta diária de SIG: dado um ponto na Terra e um nível de zoom, qual quadrado da pirâmide global Web Mercator contém esse ponto? Você também recebe os limites geográficos desse tile e uma string de caminho z/x/y pronta para URLs e caches.
Como lat/lon vira índice de tile slippy
Web Mercator, frequentemente rotulado EPSG:3857, achata o globo em um quadrado que dobra a resolução a cada passo de zoom. No zoom zero um único tile cobre o mundo projetado inteiro. No zoom um o quadrado se divide em grade dois por dois, no zoom dois em quatro por quatro, e em geral o comprimento do eixo n é igual a dois elevado ao zoom.
A longitude mapeia linearmente: some cento e oitenta graus, divida por trezentos e sessenta, multiplique por n e tome o piso para obter o índice de coluna x. A latitude não é linear em graus; a coordenada y de Mercator usa o arco-seno hiperbólico da tangente da latitude em radianos, ou o logaritmo natural equivalente de tangente mais secante. Após normalizar esse valor Mercator no intervalo unitário de zero na borda norte a um na sul, multiplique por n e tome o piso para o índice de linha y.
Os índices vão de zero inclusive a n menos um inclusive em cada eixo, coincidindo com o padrão familiar z/x/y do OpenStreetMap e CDNs de tiles compatíveis. Como a tangente da latitude diverge nos polos, Web Mercator só admite latitudes dentro de cerca de mais ou menos oitenta e cinco ponto zero cinco um um graus; esta calculadora rejeita valores fora dessa faixa fechada em vez de recortar sem aviso. A longitude deve permanecer no intervalo fechado de menos cento e oitenta a mais cento e oitenta graus.
O zoom deve ser um inteiro não negativo no máximo trinta para que dois elevado ao zoom seja uma contagem prática de tiles.
Onde a conversão lat/lon para tile aparece no trabalho real
Engenheiros de mapa front-end convertem constantemente fixes GPS e resultados de geocodificadores em coordenadas de tile para pedir o tile raster ou vetorial certo, depurar imagens ausentes e comparar chaves de cache entre CDNs. Serviços backend que pré-aquecem caches de tiles ou particionam cargas geoespaciais por célula da pirâmide precisam de uma forma fechada confiável que bata com Leaflet, OpenLayers e Mapbox GL sem puxar uma biblioteca de projeção inteira para um worker.
Autores de currículo de SIG e mapeamento web querem que alunos vejam as fórmulas Mercator produzirem índices inteiros e limites de tile legíveis sem recorte silencioso nos polos. Pipelines de logística e IoT que só armazenam chaves de tile grossas por privacidade ou armazenamento ainda precisam da conversão direta de coordenadas precisas na ingestão.
Se mais adiante você precisar do problema inverso do centro do tile ou codificação quadkey completa, geodésicas elipsoidais ou pontos de destino por círculo máximo, trate-os como intenções de busca e páginas distintas em vez de sobrecarregar esta página de índice de tile slippy.
Casos de uso
Depurar camadas de mapa e URLs de tile
Transforme um lat/lon de GPS ou geocodificador mais zoom em z/x/y para abrir a URL exata de tile OSM ou XYZ e comparar chaves de cache entre ambientes.
Pré-aquecer e particionar caches de tiles
Converta em lote listas de waypoints em índices de célula da pirâmide para jobs de warm-up de CDN, shards regionais e armazenamento grosso estilo geohash com privacidade.
Perguntas frequentes
Qual esquema de tiles esta calculadora usa?
Compatível com OpenStreetMap, Mapbox, Leaflet e a maioria dos servidores XYZ.
Por que a latitude é limitada a cerca de ±85.0511°?
Web Mercator é singular nos polos. A faixa fechada é arctan(sinh(π)) ≈ ±85.05112878°.
O que acontece se o zoom for negativo?
O zoom deve ser um inteiro não negativo em [0, 30]. Zoom negativo ou fracionário não é um nível válido da pirâmide slippy-map.
A resposta inclui os limites geográficos do tile?
Sim. Além de x, y, z e a string de caminho z/x/y, você obtém bordas oeste, sul, leste e norte em graus decimais do quadrado de tile selecionado.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
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/tile-from-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":51.5074,"longitude":-0.1278,"zoom":12}'const res = await fetch("https://api.kit.forhosting.com/geo/tile-from-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 51.5074,
"longitude": -0.1278,
"zoom": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/tile-from-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 51.5074,
"longitude": -0.1278,
"zoom": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/tile-from-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":51.5074,"longitude":-0.1278,"zoom":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":51.5074,"longitude":-0.1278,"zoom":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/tile-from-latlon", 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
{
"latitude": 51.5074,
"longitude": -0.1278,
"zoom": 12
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tile_from_latlon",
"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
Esta ferramenta recebe latitude e longitude decimais mais um zoom inteiro e devolve os índices de tile slippy X e Y usados por OpenStreetMap, Mapbox, Leaflet e a maioria dos servidores de tiles XYZ. A matemática é a projeção padrão: escala a longitude linearmente ao longo de duas elevado ao zoom colunas, e mapeia a latitude pelo arco-seno hiperbólico da tangente para que o eixo y de Mercator coincida com a mesma grade quadrada. Zoom negativo, zoom não inteiro, latitudes além do limite Mercator perto de oitenta e cinco graus, e longitudes fora de mais ou menos cento e oitenta falham com uma mensagem clara invalid_input em vez de inventar um enrolamento silencioso.
O que você envia e o que recebe de volta
A latitude deve estar na faixa fechada Web Mercator de aproximadamente menos oitenta e cinco ponto zero cinco um um a mais oitenta e cinco ponto zero cinco um um graus com norte positivo. A longitude, no intervalo fechado de menos cento e oitenta a mais cento e oitenta com leste positivo. Verificações clássicas incluem Londres perto de cinquenta e um ponto cinco zero sete quatro norte, zero ponto um dois sete oito oeste no zoom doze, e verificar que x e y batem com inspetores de tiles OpenStreetMap conhecidos. Conecte o formulário gratuito do navegador para depurar camadas de mapa e demos de sala; chame o mesmo contrato de scripts quando precisar de geração em massa de chaves de tile ou listas de pré-aquecimento de cache. Envie três números finitos obrigatórios nos campos latitude, longitude e zoom. O zoom deve ser um inteiro maior ou igual a zero e no máximo trinta; zoom negativo, fracionário ou absurdamente grande falha com invalid_input e não é cobrado. Aliases comuns como lat, lon, lng e z são aceitos no parse, enquanto a resposta sempre ecoa os nomes canônicos. Em sucesso devolve latitude, longitude e zoom limpos, o comprimento do eixo n igual a dois elevado ao zoom, índices inteiros de tile x e y, um campo z espelhado, uma string de caminho de tile na forma z/x/y, um objeto bounds com bordas oeste, sul, leste e norte desse tile em graus, a constante max_mercator_lat, a etiqueta de método web_mercator_slippy e uma string compacta de fórmula para documentação. O preço das chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde a conversão lat/lon para tile aparece no trabalho real
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Tarefas de SIG e fixtures golden
Gere X/Y de tile e limites estáveis para marcos de livro didático, para que instrutores, corretores e suites de regressão compartilhem uma verdade Web Mercator.