Tessere slippy per un riquadro
Converta un riquadro definito da longitudine e latitudine nelle coordinate XYZ esatte usate dalle mappe slippy.
Esegui gratis nel browser
Indichi ovest, sud, est, nord e un livello di zoom: il calcolatore restituirà ogni tessera intersecata in ordine deterministico per righe. Mostrerà inoltre intervalli compatti per x e y, segnalerà se il riquadro attraversa l’antimeridiano e indicherà se la latitudine polare è stata limitata a Web Mercator. In questo modo Lei potrà riprodurre stime della cache, download offline, code di rendering e verifiche di copertura senza interrogare un fornitore di tessere.
Definisca l’area geografica e lo zoom
Inserisca il riquadro come ovest, sud, est e nord in gradi decimali WGS84, quindi scelga uno zoom intero da 0 a 22. Il sud deve essere inferiore al nord, mentre ovest ed est devono essere diversi. Nella maggior parte dei riquadri, ovest è minore di est. Se ovest è maggiore, il calcolatore interpreta deliberatamente l’area come attraversamento dell’antimeridiano, evitando che una regione presso le Figi o lo stretto di Bering si estenda per errore su quasi tutto il pianeta. Per includere tutte le longitudini, usi -180 a ovest e 180 a est. Il calcolo segue la consueta convenzione XYZ delle mappe slippy: x aumenta da ovest a est, y da nord a sud e z rappresenta lo zoom scelto. Le latitudini oltre il limite Web Mercator sono accettate come dati geografici, ma vengono proiettate sul bordo rappresentabile più vicino. Il risultato segnala tale limitazione e chiarisce perché i confini polari non possono creare righe aggiuntive oltre i margini della mappa.
Comprenda quali tessere di confine sono incluse
L’elenco restituito contiene le tessere che si sovrappongono al riquadro con un’area positiva. Una tessera che tocca soltanto il confine est o sud non viene aggiunta, evitando che un riquadro perfettamente allineato alla griglia riceva una colonna o una riga superflua. I bordi ovest e nord selezionano le tessere immediatamente interne. Questo trattamento semiaperto è molto utile nella pianificazione della cache, perché permette di elaborare riquadri adiacenti senza ampliare sistematicamente entrambi i lati di ogni confine condiviso. Ogni tessera è un oggetto con x, y e z; l’ordine segue le righe y da nord a sud. In ogni riga, x procede da ovest a est; per un riquadro oltre l’antimeridiano, viene completato prima il segmento occidentale con x elevate e poi si riparte da x zero. La risposta include anche x_ranges e y_range per consultare o archiviare la copertura compatta senza ricostruirla. Il totale viene calcolato prima dell’allocazione e oltre 100,000 coordinate la richiesta viene respinta con un errore chiaro.
Usi le coordinate in un flusso di cache
Consideri il risultato come un piano deterministico, non come contenuto cartografico scaricato. La capacità non effettua richieste di rete e non conosce fornitori, stili, estensioni di file, token di accesso o politiche d’uso. La Sua applicazione può associare ogni oggetto XYZ a un URL del fornitore, a una directory locale come z/x/y, a una chiave di database o a un’attività di rendering. Controlli tile_count prima di pianificare il lavoro, così da rendere espliciti spazio, banda e quote. Per pacchetti offline riproducibili, salvi i limiti e lo zoom insieme all’elenco; una nuova esecuzione con gli stessi dati produrrà valori e ordine identici. Se una regione richiede più livelli, richiami la capacità una volta per zoom, poiché ogni livello ha una griglia propria e un numero di tessere in rapido aumento. Suddivida le aree estese ad alto zoom o inizi con un livello inferiore. Il prezzo dell’API è $0.002 per richiesta; i costi del fornitore restano separati.
Casi d'uso
Stimare un pacchetto cartografico offline
Conti ed elenchi i file XYZ necessari per la regione selezionata da un’applicazione sul campo prima di scaricare immagini.
Preparare una cache regionale di tessere
Generi una coda stabile di chiavi per un’area di servizio nota e la invii a un sistema autorizzato di preriscaldamento.
Pianificare attività di rendering
Suddivida il rendering di un riquadro in attività discrete e ordinabili in modo riproducibile per lavoratori indipendenti.
Domande frequenti
Quale convenzione per le tessere viene usata?
Viene usata la convenzione XYZ delle mappe slippy: x cresce verso est, y verso sud e z indica il livello di zoom.
Un riquadro può attraversare l’antimeridiano?
Sì. Imposti ovest maggiore di est: il risultato coprirà prima il segmento occidentale con x elevate e poi quello con x basse.
Perché le latitudini polari vengono limitate?
Web Mercator standard termina a circa 85.0511 gradi nord e sud. Gli input oltre tale limite passano alla riga disponibile più vicina.
La capacità scarica o memorizza tessere cartografiche?
No. Restituisce soltanto coordinate e non usa la rete. Lei sceglie la fonte e deve rispettarne le condizioni.
Quanto costa una richiesta?
Il prezzo dell’API è $0.002 per richiesta. Fornitore, archiviazione e rendering possono comportare costi separati.
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/tiles-in-bbox \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}'const res = await fetch("https://api.kit.forhosting.com/geo/tiles-in-bbox", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/tiles-in-bbox",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/tiles-in-bbox", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"west":-74.02,"south":40.7,"east":-73.98,"north":40.73,"zoom":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/tiles-in-bbox", 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
{
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tiles_in_bbox",
"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.
Limiti
min_zoom | 0 |
max_zoom | 22 |
max_tiles | 100000 |
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. |