Connecter votre propre service de carte à map.army

map.army est livré avec une liste fixe de fonds de carte. Si votre organisation exploite son propre service cartographique — celui d’une agence nationale de cartographie, d’un service géospatial de défense, ou un serveur de tuiles sur votre propre réseau — vous pouvez faire dessiner celui-ci par l’application à la place, sans aucune installation, en le plaçant dans le lien.

Ce que fait un lien mapType

Une adresse map.army peut transporter un paramètre mapType décrivant un service cartographique. Quand l’application le trouve, ce service devient le fond de carte :

map.army affichant un service WMTS OpenStreetMap personnalisé comme fond de carte, chargé depuis un lien mapType

Il remplace la liste intégrée au lieu de s’y ajouter. La ligne Type de carte disparaît complètement d’Options → Paramètres de la carte, car avec un seul service il n’y a plus de choix à proposer :

Menu déroulant Type de carte de map.army déplié, listant Satellite, Terrain, Hybride, Rues, Carte routière et OSM

L’effet ne dure que le temps du lien. Rien n’est enregistré : rouvrez map.army sans le paramètre et les cartes habituelles reviennent. C’est donc un bon moyen de transmettre à quelqu’un une carte fonctionnelle de votre propre zone — envoyez le lien et il n’a besoin d’aucune configuration — mais un mauvais moyen de changer votre propre réglage par défaut, car chaque visite doit reprendre le même lien.

Astuce: Le panneau Options ne propose aucun champ pour une adresse de service cartographique. Dans l’application hébergée, le lien est le seul moyen de faire cela ; si vous voulez que vos services deviennent la liste, de façon permanente et sélectionnable comme n’importe quelle autre carte, cela se configure à l’installation d’un déploiement — voir Gratuit vs Pro.

Ouvrir le lien deux fois — le premier chargement n’affiche aucune carte

map.army lors d'une première visite sur un lien mapType : barre d'outils fonctionnelle, zone de carte entièrement vide

Lors de la première visite dans un navigateur donné, un lien mapType n’affiche actuellement aucun fond de carte — une barre d’outils fonctionnelle au-dessus d’une zone vide, exactement comme ci-dessus. Rechargez la page et votre service apparaît. Tout le reste du lien fonctionne normalement.

Mesuré le 2026-09-17 sur la build 6.1.1/7489 : le premier chargement n’a fait aucune requête vers le service de tuiles ; un rechargement de la même adresse en a fait 19 et a dessiné la carte.

Astuce: Envoyez le lien avec la consigne « ouvrez-le, puis rechargez une fois ». Un destinataire qui ouvre votre lien, voit une carte vide et ferme l’onglet n’a aucun moyen de savoir que quelque chose n’allait pas — il n’y a aucun message d’erreur. Tant que ce n’est pas corrigé dans l’application, le rechargement est la solution de contournement, et cela vaut la peine de le préciser explicitement à la personne à qui vous envoyez le lien.

WMTS ou WMS — les distinguer

Ce sont deux façons standard pour un serveur de publier de l’imagerie cartographique, et celle dont vous disposez détermine les propriétés dont vous avez besoin. La documentation de votre fournisseur vous le dira, mais l’adresse elle-même est généralement révélatrice.

  • Un service WMTS (Web Map Tile Service) sert des tuiles carrées pré-découpées. Son adresse est un modèle avec des espaces réservés pour la position de la tuile — {z} pour le niveau de zoom, {x} et {y} pour la colonne et la ligne, comme dans https://tiles.example.org/{z}/{x}/{y}.png. C’est le plus rapide des deux, car le serveur a fait le travail à l’avance.
  • Un service WMS (Web Map Service) dessine une image à la demande. Son adresse est un simple point de terminaison, et vous devez aussi préciser quelles couches vous voulez et dans quel format d’image, car un point de terminaison WMS en publie généralement plusieurs.

Si on vous donne une URL GetCapabilities, c’est du WMS. Si on vous donne une adresse contenant {z}/{x}/{y}, c’est du WMTS.

Construire le lien

Le JSON

La valeur de mapType est un objet JSON. Le plus court qui fonctionne pour du WMTS n’a besoin que d’un type et d’une adresse :

{"type":"wmts","url":"https://tiles.example.org/{z}/{x}/{y}.png"}

Un objet WMS a besoin de trois éléments, car un simple point de terminaison ne suffit pas pour dessiner quoi que ce soit :

{"type":"wms","url":"https://wms.example.org/?","layers":"topo-colour","format":"image/png"}

Tout le reste est optionnel et décrit plus loin. Si les propriétés requises sont incorrectes, l’application ignore silencieusement tout le paramètre — voir Quand le lien ne fonctionne pas.

L’encoder dans l’adresse

Le JSON contient des caractères qui ne sont pas sûrs dans une URL — guillemets, accolades, virgules — l’objet doit donc être encodé en pourcentage avant d’être placé dans l’adresse. N’importe quelle bibliothèque HTTP ou langage de script fait cela pour vous. Dans une console de navigateur :

const json = JSON.stringify(mapTypeObject);
const query = new URLSearchParams({ mapType: json }).toString();
const link = `https://www.map.army/?${query}`;

Coller du JSON brut dans la barre d’adresse semble parfois fonctionner, car les navigateurs encodent certains caractères à votre place — mais pas tous, et ceux qu’ils oublient échouent silencieusement. Encodez-le correctement.

Chaque propriété en détail

Propriétés communes aux deux types de service

PropriétéSignificationObligatoire
typewmts ou wms. Toute autre valeur et le paramètre est ignoré.Oui
urlL’adresse du service. Pour WMTS, un modèle XYZ contenant {z}, {x} et {y}, plus {s} si vous utilisez des sous-domaines. Pour WMS, le point de terminaison.Oui
extentLa zone réellement couverte par le service, sous la forme [xmin, ymin, xmax, ymax] en degrés WGS84 — longitude d’abord. Elle rogne la couche : en dehors, la carte est vide. Par défaut, le monde entier.Non
epsgLe système de coordonnées dans lequel le service publie, sous forme de code EPSG. Par défaut 3857. Voir Quelles projections fonctionnent avant d’utiliser autre chose.Non
epsgExtentUne limite exprimée dans les unités d’epsg plutôt qu’en degrés. Celle-ci définit la grille de tuiles, pas le rognage de la couche, et n’a de sens que pour WMTS ou pour un WMS avec tiled: true — un WMS simple non tuilé n’a pas de grille de tuiles et l’ignore.Non
zoomLevelLes niveaux de zoom minimum et maximum pris en charge par le service, sous la forme [min, max]. Demander un zoom que le serveur n’a pas produit des tuiles vides.Non
creditsLe texte d’attribution. Voir Attribution et mentions de source — il ne prend effet qu’avec creditsUrl.Non
creditsUrlLe lien derrière ce texte d’attribution.Non

WMTS uniquement

PropriétéSignificationObligatoire
subdomainsLes lettres à faire tourner dans l’espace réservé {s}, écrites comme une seule chaîne sans séparateur — abc signifie a, b et c. Les fournisseurs les proposent pour qu’un navigateur puisse récupérer des tuiles depuis plusieurs noms d’hôte à la fois. Omettez-le si votre url ne contient pas de {s}.Non
tileSizeLe côté de la tuile en pixels. Par défaut 256, ce qu’utilisent presque tous les services ; certains plus récents servent du 512.Non

WMS uniquement

PropriétéSignificationObligatoire
layersLes noms des couches à demander, exactement comme le service les nomme. Plusieurs valeurs sont séparées par des virgules.Oui
formatLe type d’image sous forme de type MIME — image/jpeg pour de l’imagerie photographique, image/png quand vous avez besoin de transparence.Oui
stylesLe style de la couche, vide par défaut. Notez le pluriel : une clé style est ignorée, ce qui est facile à manquer car la requête réussit quand même et utilise simplement le style par défaut du serveur.Non
versionLa version de la spécification WMS. Par défaut 1.3.0. Les serveurs plus anciens peuvent nécessiter 1.1.1, qui diffère dans l’ordre des coordonnées.Non
tiledtrue demande la carte sous forme de nombreuses petites tuiles, false sous forme d’une seule grande image par vue. Le mode en tuiles est généralement plus rapide et plus léger pour le serveur ; certains services ne prennent en charge que l’un ou l’autre.Non

Quelles projections fonctionnent

La vue de la carte elle-même est toujours en Web Mercator. Votre epsg indique à l’application dans quel système le service publie, et la carte reprojette à partir de là — mais seulement pour les systèmes de coordonnées qu’elle connaît.

  • 3857 (Web Mercator) et 4326 (WGS84 lon/lat) fonctionnent toujours. Ils sont intégrés.
  • Tout le reste n’est pas pris en charge, sauf si vous l’avez testé. Les autres codes dépendent de l’enregistrement d’une définition de projection avant la construction de la carte, ce qui ne se produit pas de façon fiable. Un service suisse LV95 (2056) peut fonctionner ; un service ETRS89/UTM tel que 25832 a très peu de chances d’y parvenir.

Si votre service ne publie que dans une grille nationale, la solution fiable consiste à demander à votre fournisseur s’il sert aussi 3857 ou 4326 — c’est le cas de la plupart — plutôt que de transmettre le code national en espérant que cela fonctionne.

Exemples concrets

Un service WMTS

Les tuiles standard d’OpenStreetMap, avec sous-domaines et attribution renseignés. C’est le lien utilisé pour les captures d’écran de cette page :

{"type":"wmts","url":"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png","subdomains":"abc","tileSize":256,"zoomLevel":[0,22],"credits":"OpenStreetMap contributors","creditsUrl":"https://www.openstreetmap.org/copyright"}

Encodé dans un lien :

https://www.map.army/?mapType=%7B%22type%22%3A%22wmts%22%2C%22url%22%3A%22https%3A%2F%2F%7Bs%7D.tile.openstreetmap.org%2F%7Bz%7D%2F%7Bx%7D%2F%7By%7D.png%22%2C%22subdomains%22%3A%22abc%22%2C%22tileSize%22%3A256%2C%22zoomLevel%22%3A%5B0%2C22%5D%2C%22credits%22%3A%22OpenStreetMap+contributors%22%2C%22creditsUrl%22%3A%22https%3A%2F%2Fwww.openstreetmap.org%2Fcopyright%22%7D

Un service WMS

La carte nationale swisstopo au 1:10 000, en tuiles, restreinte à l’étendue que la Suisse occupe réellement afin que la carte ne soit pas vide ailleurs :

{"type":"wms","url":"https://wms.geo.admin.ch/?","layers":"ch.swisstopo.landeskarte-farbe-10","format":"image/jpeg","styles":"default","version":"1.3.0","tiled":true,"extent":[5.5,45.8,11,47.8],"zoomLevel":[7,21],"credits":"Federal Office of Topography swisstopo","creditsUrl":"https://www.geo.admin.ch/"}

Encodé dans un lien :

https://www.map.army/?mapType=%7B%22type%22%3A%22wms%22%2C%22url%22%3A%22https%3A%2F%2Fwms.geo.admin.ch%2F%3F%22%2C%22layers%22%3A%22ch.swisstopo.landeskarte-farbe-10%22%2C%22format%22%3A%22image%2Fjpeg%22%2C%22styles%22%3A%22default%22%2C%22version%22%3A%221.3.0%22%2C%22tiled%22%3Atrue%2C%22extent%22%3A%5B5.5%2C45.8%2C11%2C47.8%5D%2C%22zoomLevel%22%3A%5B7%2C21%5D%2C%22credits%22%3A%22Federal+Office+of+Topography+swisstopo%22%2C%22creditsUrl%22%3A%22https%3A%2F%2Fwww.geo.admin.ch%2F%22%7D

Attribution et mentions de source

credits et creditsUrl sont optionnels pour l’application, mais généralement pas pour votre licence. La plupart des services cartographiques, y compris OpenStreetMap et chaque agence nationale de cartographie, exigent que leur attribution apparaisse partout où leur imagerie est affichée.

Renseignés, ils apparaissent à deux endroits :

  • Dans l’application, sous forme de lien dans le panneau d’information — le bouton i en bas à droite — affichant © Map Data: suivi de votre texte credits, pointant vers votre creditsUrl. Vérifié le 2026-09-17 : un lien portant l’attribution d’OpenStreetMap y a produit © Map Data: OpenStreetMap contributors, exactement comme les cartes intégrées produisent © Map Data: Google.
  • Dans le pied de page de chaque export et impression, celui qui compte généralement pour une licence.

Notez que le crédit dans l’application est derrière ce bouton, et non dessiné sur la carte. Si votre licence exige que l’attribution soit visible sans clic, c’est sur le pied de page de l’export que vous pouvez compter.

Astuce: Les deux propriétés sont requises, sinon aucune n’est utilisée. Fournir credits sans creditsUrl ne produit rien du tout — aucun lien dans le panneau et un pied de page d’export vide, sans avertissement dans un cas comme dans l’autre. Si l’attribution compte pour votre licence, définissez les deux et vérifiez un export avant d’en publier un.

La vue 3D

Un service mapType fonctionne dans la vue 3D aussi bien que sur la carte 2D, bien que la vue 3D le construise par une voie différente. Deux conséquences à connaître :

  • Si vous avez restreint la couverture avec extent, la vue 3D ajoute un arrière-plan mondial discret sous votre service afin que le globe n’ait pas de bords flous en dehors de votre zone. Cet arrière-plan n’est pas votre service et ne porte aucune attribution de votre part.
  • La mise en garde sur les projections ci-dessus s’applique encore plus fortement en 3D. Considérez 3857 et 4326 comme les cas pris en charge et testez tout le reste dans les deux vues avant de vous y fier.

Combiner avec d’autres paramètres

mapType est lu indépendamment des autres paramètres d’URL, si bien qu’un même lien peut transporter votre service cartographique et précharger une superposition avec layer=. Les paramètres fonctionnent dans une intégration iframe exactement comme dans un lien normal.

Astuce: Un lien qui transporte à la fois mapType et un partage cesse d’être le lien que vous avez envoyé. Quand l’application ouvre un partage, elle réécrit la barre d’adresse avec l’adresse propre du partage et ne conserve que les paramètres du partage — mapType disparaît donc de l’URL. La carte continue de fonctionner pour cette session, mais l’adresse n’est plus copiable, ajoutable aux favoris ni rechargeable en tant que lien combiné. Conservez l’original quelque part si vous en avez besoin à nouveau, et n’oubliez pas que le rechargement décrit plus haut, lors du premier chargement, en a besoin.

Partager une carte chargée de cette façon

Si vous ouvrez map.army avec un lien mapType puis créez un partage, la personne qui ouvre votre partage n’obtient pas votre service cartographique. Elle reçoit son propre fond de carte par défaut, avec votre superposition par-dessus.

C’est le malentendu le plus probable sur cette page, car rien à l’écran ne le laisse deviner : votre partage vous semble correct. Le partage enregistre quel fond de carte était sélectionné, mais pas sa définition, et votre service n’a jamais fait partie de la liste du destinataire, si bien que son application revient à son propre réglage par défaut.

Pour transmettre à quelqu’un votre fond de carte en plus de votre superposition, envoyez-lui le lien mapType lui-même — avec le paramètre layer= si vous voulez que la superposition l’accompagne — plutôt qu’un partage.

Quand le lien ne fonctionne pas

Il existe trois échecs distincts, et ils se manifestent différemment à l’écran.

Une carte vide au premier chargement. Normal, pour l’instant — rechargez la page. Voir Ouvrir le lien deux fois.

Votre service est ignoré et les cartes normales apparaissent. Le JSON était lisible mais ne décrivait pas un service utilisable — un type qui n’est ni wmts ni wms, une url manquante, ou un WMS sans layers ni format. L’application revient à sa liste intégrée. Vérifiez les propriétés requises pour votre type de service.

Aucune carte du tout, même après un rechargement. Soit le JSON n’a pas pu être lu — une virgule en trop, une accolade non fermée, un caractère non encodé — soit le service n’est pas accessible d’une manière que l’application puisse utiliser. Pour le JSON, collez-le dans n’importe quel validateur avant de l’encoder. Pour le service, vérifiez trois points, dans cet ordre :

  1. Accès cross-origin. map.army dessine chaque tuile via un canvas, afin de pouvoir appliquer la luminosité, la teinte et la chrominance, et afin que la carte puisse être intégrée à un export. Cela signifie que votre service doit envoyer un en-tête Access-Control-Allow-Origin autorisant l’origine de l’application. Un service qui ne le fait pas n’affichera rien du tout, même si la même URL de tuile s’ouvre parfaitement dans un onglet de navigateur. C’est la cause la plus fréquente d’un service qui semble correct mais qui n’apparaît jamais, et la plus difficile à deviner.
  2. HTTPS. Un navigateur bloque l’imagerie en HTTP simple à l’intérieur d’une page HTTPS.
  3. Accessibilité. Vérifiez que le service répond depuis la machine qui exécute le navigateur, et pas seulement depuis l’intérieur de votre réseau.

Si votre service ne peut pas être configuré pour envoyer des en-têtes cross-origin, la solution habituelle consiste à placer devant lui un proxy qui le peut, sur votre propre infrastructure.

Ce qu’un lien ne peut pas faire

  • Un seul service par lien. Il n’y a aucun moyen de transmettre une liste, ni d’ajouter le vôtre à côté des cartes intégrées.
  • Ce n’est pas mémorisé. Chaque visite doit reprendre le lien.
  • Cela n’apparaît pas dans le panneau Options comme une nouvelle entrée — cela prend la place de toute la liste, et la ligne Type de carte disparaît.
  • Cela ne se transmet pas dans un partage. Voir ci-dessus.
  • epsg, epsgExtent et tileSize sont respectés ici, mais pas dans le fichier de configuration propre à un déploiement, si bien qu’un lien peut décrire un service plus précisément qu’un déploiement installé ne le peut.

Pour une liste permanente de vos propres services, sélectionnable comme n’importe quelle autre carte et partagée par tous ceux qui utilisent ce déploiement, voir Gratuit vs Pro.

Pour aller plus loin