Calculateur d'échelle de carte web
Trouvez l'échelle 1:N d'une carte web à partir du zoom et des DPI de l'écran : le zoom 10 sur un écran de 96 DPI donne 1:437960 au parallèle 40,7128° N, le chiffre de la barre d'échelle ou de la légende. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Niveau de zoom de la carte
- 10
- Latitude en degrés décimaux
- 40,7128
- ppp
- 96
- Rayon terrestre en m
- 6 378 137
- Taille de tuile
- 256
- Mètres par pixel
- 115,8767977875
- Dénominateur d'échelle
- 437 960
Cet outil applique cette formule fermée avec un rayon terrestre et une taille de tuile déclarés, puis multiplie par les DPI sur les mètres par pouce, de sorte que l'échelle imprimée ou affichée corresponde à ce que les manuels de SIG appellent la fraction représentative.
Ce que signifie l'échelle sur un fond de carte Web Mercator
L'échelle cartographique est le rapport entre la distance sur la carte et la distance au sol, écrit comme la fraction représentative un-à-N. Sur les cartes papier, N est fixe pour chaque feuille ; sur les cartes web interactives, N change chaque fois que l'utilisateur zoome ou déplace la vue vers une autre latitude.
La projection Web Mercator utilisée par presque tous les fonds de carte grand public enroule la Terre dans un carré au zoom zéro avec des tuiles de deux cent cinquante-six pixels, puis subdivise chaque tuile en quatre enfants à chaque pas de zoom. La résolution au sol en mètres par pixel à l'équateur vaut donc deux pi fois le rayon équatorial de WGS84 divisé par deux cent cinquante-six fois deux à la puissance du zoom.
Convertir les mètres par pixel en dénominateur d'échelle exige de connaître la taille d'un pixel d'écran en mètres : les DPI de l'écran indiquent des points par pouce, et un pouce international vaut exactement zéro virgule zéro deux cinq quatre mètres, donc les mètres par pixel de l'appareil valent zéro virgule zéro deux cinq quatre divisé par les DPI.
Le dénominateur N est la résolution au sol divisée par les mètres par pixel de l'appareil — ou, de façon équivalente, les m/px au sol fois les DPI sur zéro virgule zéro deux cinq quatre. La latitude doit rester dans l'intervalle fermé de moins quatre-vingt-dix à quatre-vingt-dix degrés pour que le cosinus reste défini en arithmétique réelle.
Questions fréquentes
Comment l'échelle d'une carte web est-elle calculée à partir du zoom ?
Le dénominateur d'échelle est cette valeur fois les DPI divisée par 0.0254 m/pouce.
Pourquoi le zoom et les DPI doivent-ils être positifs ?
Un zoom nul ou négatif inverserait ou annulerait la pyramide de tuiles ; des DPI nuls ou négatifs ne sont pas une densité d'écran physique.
Le zoom fractionnaire est-il pris en charge ?
Oui. Le zoom est un nombre positif fini jusqu'à 30, donc des valeurs comme 12.5 correspondent au zoom continu de caméra des moteurs de cartes web modernes.
Le calculateur d'échelle de carte web est-il gratuit ?
L'outil du navigateur est gratuit et s'exécute localement.
L'échelle change-t-elle selon la latitude ?
Oui. En Web Mercator, les mètres de terrain couverts par un pixel diminuent quand on s'éloigne de l'équateur, car ils sont multipliés par le cosinus de la latitude. Le même zoom donne donc des échelles différentes selon le parallèle.
Outils associés
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/map-scale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"zoom":10,"latitude":40.7128,"dpi":96}'const res = await fetch("https://api.kit.forhosting.com/geo/map-scale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"zoom": 10,
"latitude": 40.7128,
"dpi": 96
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/map-scale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"zoom": 10,
"latitude": 40.7128,
"dpi": 96
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/map-scale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"zoom":10,"latitude":40.7128,"dpi":96}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"zoom":10,"latitude":40.7128,"dpi":96}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/map-scale", 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
{
"zoom": 10,
"latitude": 40.7128,
"dpi": 96
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.map_scale",
"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_lat | -90 |
max_lat | 90 |
min_zoom | 1e-12 |
max_zoom | 30 |
min_dpi | 1e-12 |
max_dpi | 1000000 |
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. |
Notes techniques
Un calculateur d'échelle de carte web transforme trois données courantes de tout visionneur de cartes — niveau de zoom, latitude et DPI de l'écran — en dénominateur d'échelle cartographique représentative qui qualifie une carte glissante de un-à-N. Les cartes web de Leaflet, OpenLayers, Mapbox, Google Maps et OpenStreetMap partagent le modèle de tuiles Web Mercator (EPSG:3857) : les mètres au sol par pixel diminuent à mesure que le zoom augmente et que l'on s'éloigne de l'équateur, à cause du cosinus de la latitude. Le traitement est une arithmétique pure et déterministe — sans réseau, sans graine aléatoire, sans dépendance à l'horloge —, donc l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON après un arrondi fixe à chaque appel.
Ce que signifie l'échelle sur un fond de carte Web Mercator
Loin de l'équateur, cette résolution est multipliée par le cosinus de la latitude, de sorte qu'un même numéro de zoom couvre une empreinte au sol plus grande près des pôles. Quand le zoom ou les DPI sont nuls ou négatifs, la géométrie n'est pas définie pour une visionneuse de cartes : cette capacité rejette donc un zoom et des DPI non positifs avec invalid_input au lieu d'inventer une échelle.
Comment appeler l'API et ce qu'elle renvoie
Envoyez un corps JSON avec trois nombres finis obligatoires : zoom (alias z et zoom_level), latitude (alias lat et y) et dpi (alias screen_dpi et resolution_dpi). Le zoom doit être strictement positif et au plus trente ; les DPI doivent être strictement positifs et au plus un million ; la latitude doit se situer entre moins quatre-vingt-dix et quatre-vingt-dix inclus. En cas de succès, la réponse renvoie zoom, latitude et dpi arrondis, publie earth_radius_m à six millions trois cent soixante-dix-huit mille cent trente-sept et tile_size à deux cent cinquante-six, retourne meters_per_pixel comme résolution au sol, scale_denominator comme le N représentatif (arrondi à l'entier le plus proche lorsque la valeur absolue est au moins un), scale_ratio comme la chaîne un-deux-points-N, formula comme l'expression fermée utilisée, message comme un bref résumé en anglais et steps comme une trace de substitution ordonnée que vous pouvez montrer dans des feuilles d'exercices ou des assertions. Une validation en échec — champs manquants, nombres non finis, latitude hors plage, zoom au-dessus du plafond publié, DPI au-dessus du plafond publié ou zoom ou DPI non positifs — renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait de $0.002 par requête réussie, avec l'unité item et un prix marginal par unité nul.
Conseils pratiques, limites et recherches associées
Préférez quatre-vingt-seize DPI lorsque vous visez le pixel de référence habituel de CSS et des navigateurs ; n'utilisez soixante-douze que pour reproduire d'anciennes hypothèses d'impression ; utilisez le vrai rapport de pixels de l'appareil multiplié par quatre-vingt-seize lorsque les écrans physiques de téléphones ou les dalles retina comptent. Le zoom fractionnaire est autorisé car les moteurs de cartes modernes interpolent entre les niveaux entiers de tuiles — passez dix virgule cinq lorsque la caméra se situe à mi-chemin entre dix et onze. Près des pôles, le facteur cosinus réduit les mètres par pixel et donc N ; c'est correct en Web Mercator, pas un bogue, même si les applications réelles bornent souvent la latitude vers quatre-vingt-cinq degrés pour la couverture des tuiles. Cette page cible les personnes qui cherchent un calculateur d'échelle de carte web, une conversion de zoom en dénominateur d'échelle ou une échelle de carte Mercator en ligne ; ce n'est ni un outil de distance géodésique, ni un moteur de mise en page d'impression, ni un générateur d'URL de tuiles. Gardez le zoom à trente ou moins pour que deux à la puissance du zoom reste fini en double précision IEEE, tant sur le Worker que dans le navigateur. Pour enseigner, combinez les exemples : zoom dix à New York avec quatre-vingt-seize DPI donne un dénominateur d'échelle urbaine ; le même zoom à l'équateur donne un N légèrement plus petit car le cosinus est plus grand ; et un dpi de zéro ou un zoom de zéro volontaires illustrent le chemin strict d'invalid_input. Préférez cette capacité lorsque vous disposez déjà du zoom, de la latitude et des DPI et qu'il ne vous manque que le un-à-N ; si votre source est une carte imprimée sans numéro de zoom, mesurez directement les distances au sol et sur la carte. Les tâches en échec qui renvoient invalid_input ne consomment pas de solde prépayé, ce qui garde les scripts exploratoires bon marché quand les apprenants envoient volontairement des DPI non positifs. Les vérifications aller-retour sont faciles : recalculez le cosinus de la latitude en radians fois la résolution initiale publiée divisé par deux à la puissance du zoom, multipliez par les DPI sur zéro virgule zéro deux cinq quatre, et confirmez que le dénominateur entier correspond au scale_denominator publié à une unité d'arrondi ordinaire près.
Cas d'intégration
Étiquettes de légende sur fonds de carte interactifs
Les équipes produit cartographiques calculent le 1:N à partir du zoom actuel, de la latitude du centre de la carte et des DPI de l'appareil pour que le texte de la barre d'échelle reste cohérent avec les mathématiques de Web Mercator.
Devoirs et corrigés de laboratoires de SIG
Les enseignants vérifient les calculs de fraction représentative de leurs élèves à partir d'un zoom, d'une latitude et d'une résolution d'écran donnés, sans ouvrir de SIG de bureau.
Tests unitaires d'utilitaires de caméra cartographique
Les développeurs vérifient des valeurs golden de scale_denominator pour des triplets fixes de zoom/latitude/DPI lors des tests de contrôles de zoom, d'aperçu avant impression ou de métadonnées d'export.
Questions techniques
La latitude change-t-elle l'échelle à zoom égal ?
Oui. La résolution au sol de Web Mercator est multipliée par cos(latitude), donc un même zoom donne une échelle au sol plus grossière près des pôles qu'à l'équateur.