Lat/lon a tile: indici X/Y Web Mercator e zoom, gratis
Scopra quale tile di mappa web contiene un punto: (51,5074; -0,1278) allo zoom 12 cade nella tile 12/2046/1362, colonna 2046 e riga 1362. Ottiene anche i bordi della tile e il percorso z/x/y pronto da usare. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Latitudine geografica
- 51,5074
- Longitudine geografica
- -0,1278
- Livello di zoom
- 12
- N
- 4096
- X
- 2046
- Y
- 1362
- Z
- 12
I calcolatori di tile cartografiche rispondono a una domanda GIS quotidiana: dato un punto sulla Terra e un livello di zoom, quale quadrato della piramide globale Web Mercator contiene quel punto? Questo strumento accetta latitudine e longitudine decimali più uno zoom intero e restituisce gli indici di tile slippy X e Y usati da OpenStreetMap, Mapbox, Leaflet e dalla maggior parte dei server di tile XYZ. La matematica è la proiezione standard: scala linearmente la longitudine su due elevato allo zoom colonne, e mappa la latitudine tramite l’arcoseno iperbolico della tangente affinché l’asse y di Mercatore coincida con la stessa griglia quadrata. Riceve anche i confini geografici di quella tile e una stringa di percorso z/x/y pronta per URL e cache.
Come lat/lon diventa un indice di tile slippy
Web Mercator, spesso etichettato EPSG:3857, appiattisce il globo su un quadrato che raddoppia la risoluzione a ogni passo di zoom. Allo zoom zero una sola tile copre l’intero mondo proiettato. Allo zoom uno il quadrato si divide in griglia due per due, allo zoom due in quattro per quattro, e in generale la lunghezza dell’asse n è due elevato allo zoom.
La longitudine si mappa linearmente: si aggiungono centottanta gradi, si divide per trecentosessanta, si moltiplica per n e si prende il pavimento per ottenere l’indice di colonna x. La latitudine non è lineare in gradi; la coordinata y di Mercatore usa l’arcoseno iperbolico della tangente della latitudine in radianti, o il logaritmo naturale equivalente di tangente più secante. Dopo aver normalizzato quel valore Mercatore nell’intervallo unitario da zero al bordo nord a uno al sud, si moltiplica per n e si prende il pavimento per l’indice di riga y.
Poiché la tangente della latitudine diverge ai poli, Web Mercator ammette solo latitudini entro circa più o meno ottantacinque virgola zero cinque uno uno gradi; questo calcolatore rifiuta valori fuori da quella banda chiusa anziché ritagliarli senza avviso. La longitudine deve restare nell’intervallo chiuso da meno centottanta a più centottanta gradi. Lo zoom deve essere un intero non negativo al massimo trenta affinché due elevato allo zoom resti un conteggio pratico di tile.
Dove compare la conversione lat/lon a tile nel lavoro reale
Gli ingegneri di mappe front-end convertono costantemente fix GPS e risultati di geocoder in coordinate di tile per richiedere la tile raster o vettoriale giusta, debuggare immagini mancanti e confrontare chiavi di cache tra CDN. I servizi backend che pre-riscaldano cache di tile o partizionano carichi geospatiali per cella di piramide necessitano di una forma chiusa affidabile allineata a Leaflet, OpenLayers e Mapbox GL senza trascinare un’intera libreria di proiezione in un worker.
Gli autori di curriculum GIS e web mapping vogliono che gli studenti vedano le formule Mercatore produrre indici interi e confini di tile leggibili senza ritaglio silenzioso ai poli. Le pipeline di logistica e IoT che memorizzano solo chiavi di tile grossolane per privacy o archiviazione hanno ancora bisogno della conversione diretta da coordinate precise all’ingestione.
Se in seguito serve il problema inverso del centro tile o codifica quadkey completa, geodetiche ellissoidiche o punti di destinazione per cerchio massimo, li tratti come intenzioni di ricerca e pagine distinte piuttosto che sovraccaricare questa pagina di indice tile slippy.
Casi d'uso
Debug di layer mappa e URL di tile
Trasformi un lat/lon GPS o di geocoder più zoom in z/x/y per aprire l’URL esatta di tile OSM o XYZ e confrontare chiavi di cache tra ambienti.
Pre-riscaldare e partizionare cache di tile
Converta in batch elenchi di waypoint in indici di cella della piramide per job di warm-up CDN, shard regionali e archiviazione grossolana stile geohash con privacy.
Domande frequenti
Perché la latitudine è limitata a circa ±85.0511°?
Web Mercator è singolare ai poli. L’intervallo chiuso è arctan(sinh(π)) ≈ ±85.05112878°.
Cosa succede se lo zoom è negativo?
Lo zoom deve essere un intero non negativo in [0, 30]. Zoom negativo o frazionario non è un livello valido della piramide slippy-map.
La risposta include i confini geografici della tile?
Sì. Oltre a x, y, z e la stringa di percorso z/x/y, ottiene i bordi ovest, sud, est e nord in gradi decimali del quadrato di tile selezionato.
Quanto costa?
Lo strumento browser è gratuito e gira in locale.
Fino a quale livello di zoom funziona?
Lo zoom deve essere un numero intero da 0 a 30. A ogni livello le colonne e le righe raddoppiano: allo zoom 12, per esempio, ce ne sono 4096 per lato.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"latitude": 51.5074,
"longitude": -0.1278,
"zoom": 12
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tile_from_latlon",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Zoom negativo, zoom non intero, latitudini oltre il limite Mercatore vicino a ottantacinque gradi e longitudini fuori da più o meno centottanta falliscono con un messaggio chiaro invalid_input invece di inventare un avvolgimento silenzioso.
Come lat/lon diventa un indice di tile slippy
Gli indici vanno da zero incluso a n meno uno incluso su ciascun asse, coincidendo con il familiare schema z/x/y di OpenStreetMap e CDN di tile compatibili.
Cosa invia e cosa riceve in risposta
La latitudine deve stare nell’intervallo chiuso Web Mercator di circa meno ottantacinque virgola zero cinque uno uno a più ottantacinque virgola zero cinque uno uno gradi con nord positivo. La longitudine, nell’intervallo chiuso da meno centottanta a più centottanta con est positivo. Controlli classici includono Londra vicino a cinquantuno virgola cinque zero sette quattro nord, zero virgola uno due sette otto ovest allo zoom dodici, e la verifica che x e y corrispondano a ispettori di tile OpenStreetMap noti. Colleghi il modulo gratuito del browser per debuggare layer di mappa e demo in aula; chiami lo stesso contratto da script quando serve generazione massiva di chiavi tile o elenchi di pre-riscaldamento cache. Invii tre numeri finiti obbligatori nei campi latitude, longitude e zoom. Lo zoom deve essere un intero maggiore o uguale a zero e al massimo trenta; zoom negativo, frazionario o assurdamente grande fallisce con invalid_input e non viene addebitato. Alias comuni come lat, lon, lng e z sono accettati al parse, mentre la risposta ecoa sempre i nomi canonici. In caso di successo restituisce latitudine, longitudine e zoom puliti, la lunghezza dell’asse n uguale a due elevato allo zoom, indici interi di tile x e y, un campo z specchio, una stringa di percorso tile in forma z/x/y, un oggetto bounds con bordi ovest, sud, est e nord di quella tile in gradi, la costante max_mercator_lat, l’etichetta di metodo web_mercator_slippy e una stringa compatta di formula per la documentazione. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano il saldo prepagato.
Dove compare la conversione lat/lon a tile nel lavoro reale
Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.
Casi di integrazione
Compiti GIS e fixture golden
Generi X/Y di tile e confini stabili per punti di riferimento da manuale, così docenti, correttori automatici e suite di regressione condividono una verità Web Mercator.
Domande tecniche
Quale schema di tile usa questo calcolatore?
Lo schema slippy-map Web Mercator standard (OSM / XYZ): n = 2^zoom, x dalla longitudine, y dalla latitudine Mercatore via asinh(tan φ). Compatibile con OpenStreetMap, Mapbox, Leaflet e la maggior parte dei server XYZ.