Tuiles slippy couvrant une zone
Convertissez une zone délimitée par des longitudes et latitudes en coordonnées XYZ exactes utilisées par les cartes slippy.
Lancer gratuitement
Indiquez l’ouest, le sud, l’est, le nord et un niveau de zoom : le calculateur renvoie chaque tuile intersectée dans un ordre déterministe, ligne par ligne. Il fournit aussi des plages compactes pour x et y, précise si la zone traverse l’antiméridien et signale toute limitation de latitude polaire imposée par Web Mercator. Vous pouvez ainsi reproduire vos estimations de cache, téléchargements hors ligne, files de rendu et contrôles de couverture sans interroger un fournisseur de tuiles.
Définissez la zone géographique et le zoom
Saisissez la zone avec ses limites ouest, sud, est et nord en degrés décimaux WGS84, puis choisissez un zoom entier de 0 à 22. Le sud doit être inférieur au nord, et l’ouest doit différer de l’est. Dans la plupart des cas, l’ouest est inférieur à l’est. Dans le cas contraire, le calculateur considère volontairement que la zone traverse l’antiméridien, afin qu’une région autour des Fidji ou du détroit de Béring ne s’étende pas par erreur sur presque toute la planète. Pour couvrir toutes les longitudes, utilisez -180 à l’ouest et 180 à l’est. Le calcul respecte la convention XYZ courante des cartes slippy : x augmente d’ouest en est, y du nord au sud, et z correspond au zoom choisi. Une latitude dépassant la limite Web Mercator reste acceptée comme entrée géographique, mais elle est projetée sur le bord représentable le plus proche. Le résultat signale cette limitation et explique pourquoi les bornes polaires ne créent aucune ligne supplémentaire.
Identifiez les tuiles de bord incluses
La liste renvoyée contient les tuiles dont le chevauchement avec la zone présente une surface positive. Une tuile qui touche seulement la limite est ou sud n’est pas ajoutée, ce qui évite une colonne ou une ligne superflue lorsque la zone suit exactement la grille. Les limites ouest et nord sélectionnent les tuiles situées immédiatement à l’intérieur. Ce traitement semi-ouvert facilite la planification des caches : des zones adjacentes peuvent être traitées sans gonfler systématiquement les deux côtés d’une limite commune. Chaque tuile est un objet comprenant x, y et z, ordonné par ligne y du nord au sud. Dans une ligne, x avance d’ouest en est ; pour une zone traversant l’antiméridien, le segment occidental aux x élevés se termine avant la reprise à x zéro. La réponse contient aussi x_ranges et y_range afin de consulter ou conserver une couverture compacte sans la reconstruire. Le total est calculé avant l’allocation, et toute requête dépassant 100,000 coordonnées produit une erreur explicite.
Intégrez les coordonnées à un flux de cache
Considérez la sortie comme un plan déterministe, et non comme du contenu cartographique téléchargé. Cette capacité n’effectue aucune requête réseau et ne connaît ni fournisseur, ni style, ni extension de fichier, ni jeton d’accès, ni politique d’utilisation. Votre application peut associer chaque objet XYZ à une URL de fournisseur, à un répertoire local tel que z/x/y, à une clé de base de données ou à une tâche de rendu. Vérifiez tile_count avant la programmation afin de rendre explicites le stockage, la bande passante et les quotas. Pour des lots hors ligne reproductibles, conservez les limites et le zoom avec la liste ; une nouvelle exécution avec la même entrée donnera le même ordre et les mêmes valeurs. Si plusieurs zooms sont nécessaires, appelez la capacité pour chacun, car chaque niveau possède sa grille et son volume augmente vite. Fractionnez les grandes zones à fort zoom ou commencez à un niveau inférieur. Le tarif de l’API est de $0.002 par requête ; les frais du fournisseur restent séparés.
Cas d’usage
Évaluer un lot cartographique hors ligne
Comptez et énumérez les fichiers XYZ nécessaires à la zone choisie par une application de terrain avant tout téléchargement d’images.
Préchauffer un cache régional de tuiles
Créez une file stable de clés pour une zone de service connue et transmettez-la à un système de préchauffage autorisé.
Planifier des tâches de rendu
Découpez le rendu d’une zone en tâches de tuiles distinctes et ordonnées de façon reproductible pour un traitement indépendant.
Questions fréquentes
Quelle convention de tuiles est utilisée ?
La convention XYZ des cartes slippy est appliquée : x croît vers l’est, y vers le sud et z désigne le niveau de zoom.
Une zone peut-elle traverser l’antiméridien ?
Oui. Définissez l’ouest au-delà de l’est ; la sortie couvre d’abord le segment occidental aux x élevés, puis celui aux x faibles.
Pourquoi limiter les latitudes polaires ?
Web Mercator standard s’arrête vers 85.0511 degrés nord et sud. Toute entrée au-delà rejoint la ligne disponible la plus proche.
Cet outil télécharge-t-il ou stocke-t-il des tuiles ?
Non. Il renvoie uniquement les coordonnées, sans accès réseau. Vous choisissez la source et respectez ses conditions.
Quel est le coût d’une requête ?
Le tarif de l’API est de $0.002 par requête. Le fournisseur, le stockage ou le rendu peuvent entraîner des frais distincts.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"west": -74.02,
"south": 40.7,
"east": -73.98,
"north": 40.73,
"zoom": 12
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.tiles_in_bbox",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
min_zoom | 0 |
max_zoom | 22 |
max_tiles | 100000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |