Eigenen Kartendienst mit map.army verbinden

map.army liefert eine feste Liste von Hintergrundkarten mit. Betreibt Ihre Organisation einen eigenen Kartendienst — den einer nationalen Vermessungsbehörde, eines militärischen Geodienstes oder einen Tile-Server im eigenen Netzwerk —, können Sie die App stattdessen diesen zeichnen lassen, ganz ohne Installation, indem Sie ihn in den Link aufnehmen.

Eine map.army-Adresse kann einen mapType-Parameter tragen, der einen Kartendienst beschreibt. Findet die App ihn, wird dieser Dienst zur Hintergrundkarte:

map.army zeichnet einen eigenen OpenStreetMap-WMTS-Dienst als Hintergrundkarte, geladen über einen mapType-Link

Er ersetzt die eingebaute Liste, statt sich ihr anzuschliessen. Die Zeile Kartentyp verschwindet vollständig aus Options → Karten Einstellungen, weil bei nur einem Dienst keine Auswahl mehr anzubieten ist:

Aufgeklapptes Kartentyp-Dropdown von map.army mit Satellit, Terrain, Hybrid, Strassen, Roadmap und OSM

Die Wirkung hält nur so lange wie der Link an. Es wird nichts gespeichert: Öffnen Sie map.army erneut ohne den Parameter, sind die gewohnten Karten wieder da. Das macht ihn zu einem guten Mittel, um jemandem eine funktionierende Karte Ihres eigenen Gebiets in die Hand zu geben — Link senden, kein Setup nötig —, aber zu einem schlechten Mittel, um Ihre eigene Vorgabe dauerhaft zu ändern, weil jeder Besuch denselben Link braucht.

Hinweis: Im Options-Panel gibt es kein Feld für eine Kartendienst-Adresse. In der gehosteten App ist der Link der einzige Weg dafür; sollen Ihre Dienste dauerhaft die Liste bilden und wie jede andere Karte auswählbar sein, wird das bei der Einrichtung einer Bereitstellung konfiguriert — siehe Frei vs Pro.
map.army beim ersten Besuch eines mapType-Links: Werkzeugleiste funktioniert, Kartenfläche bleibt vollständig leer

Beim ersten Besuch in einem gegebenen Browser zeigt ein mapType-Link derzeit überhaupt keine Hintergrundkarte — eine funktionierende Werkzeugleiste über einer leeren Fläche, genau wie oben. Laden Sie die Seite neu, und Ihr Dienst erscheint. Alles andere am Link funktioniert normal.

Gemessen am 2026-09-17 gegen Build 6.1.1/7489: Der erste Ladevorgang löste null Anfragen an den Kacheldienst aus; ein Neuladen derselben Adresse löste 19 aus und zeichnete die Karte.

Hinweis: Senden Sie den Link mit dem Hinweis „öffnen, dann einmal neu laden“. Ein Empfänger, der Ihren Link öffnet, eine leere Karte sieht und den Tab schliesst, hat keine Möglichkeit zu erkennen, dass etwas schiefgelaufen ist — es erscheint keine Fehlermeldung. Bis dies in der App behoben ist, ist das Neuladen die Abhilfe, und es lohnt sich, das demjenigen, dem Sie den Link senden, ausdrücklich zu sagen.

WMTS oder WMS — sie auseinanderhalten

Beide sind Standardwege, mit denen ein Server Kartenbilder veröffentlicht, und welchen Sie vor sich haben, entscheidet, welche Eigenschaften Sie brauchen. Die Dokumentation Ihres Anbieters nennt es, doch meist verrät es schon die Adresse selbst.

  • Ein WMTS-Dienst (Web Map Tile Service) liefert vorgeschnittene quadratische Kacheln. Seine Adresse ist eine Vorlage mit Platzhaltern für die Position der Kachel — {z} für die Zoomstufe, {x} und {y} für Spalte und Zeile, etwa in https://tiles.example.org/{z}/{x}/{y}.png. Er ist der schnellere der beiden, weil der Server die Arbeit bereits im Voraus erledigt hat.
  • Ein WMS-Dienst (Web Map Service) zeichnet ein Bild auf Anfrage. Seine Adresse ist ein einfacher Endpunkt, und Sie müssen zusätzlich angeben, welche Layer Sie wollen und in welchem Bildformat, weil ein WMS-Endpunkt üblicherweise mehrere Layer veröffentlicht.

Erhalten Sie eine GetCapabilities-URL, handelt es sich um WMS. Erhalten Sie eine Adresse mit {z}/{x}/{y} darin, handelt es sich um WMTS.

Das JSON

Der Wert von mapType ist ein JSON-Objekt. Das kürzeste brauchbare WMTS-Objekt braucht nur einen Typ und eine Adresse:

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

Ein WMS-Objekt braucht drei Dinge, weil ein blosser Endpunkt allein nicht ausreicht, um etwas zu zeichnen:

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

Alles Weitere ist optional und wird unten beschrieben. Stimmen die erforderlichen Eigenschaften nicht, ignoriert die App den gesamten Parameter stillschweigend — siehe Wenn der Link nicht funktioniert.

Es in die Adresse codieren

JSON enthält Zeichen, die in einer URL nicht sicher sind — Anführungszeichen, geschweifte Klammern, Kommas —, weshalb das Objekt vor der Aufnahme in die Adresse Prozent-codiert werden muss. Jede HTTP-Bibliothek oder Skriptsprache erledigt das für Sie. In der Browser-Konsole:

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

Rohes JSON direkt in die Adressleiste einzufügen scheint manchmal zu funktionieren, weil Browser einige Zeichen automatisch codieren — aber nicht alle, und die übersehenen scheitern lautlos. Codieren Sie es richtig.

Jede Eigenschaft im Detail

Eigenschaften, die beide Diensttypen unterstützen

EigenschaftBedeutungErforderlich
typewmts oder wms. Alles andere, und der Parameter wird ignoriert.Ja
urlDie Dienstadresse. Für WMTS eine XYZ-Vorlage mit {z}, {x} und {y}, plus {s}, falls Sie Subdomains verwenden. Für WMS der Endpunkt.Ja
extentDas Gebiet, das der Dienst tatsächlich abdeckt, als [xmin, ymin, xmax, ymax] in WGS84-Grad, Länge zuerst. Es schneidet den Layer zu, sodass die Karte ausserhalb davon leer bleibt. Standardmässig die ganze Welt.Nein
epsgDas Koordinatensystem, in dem der Dienst veröffentlicht, als EPSG-Code. Standardmässig 3857. Siehe Welche Projektionen funktionieren, bevor Sie etwas anderes verwenden.Nein
epsgExtentEine Abdeckungsgrenze in den Einheiten von epsg statt in Grad. Sie definiert das Kachelraster, nicht die Ausschnittsbegrenzung des Layers, und ist nur für WMTS oder für WMS mit tiled: true von Bedeutung — ein einfacher, ungekachelter WMS-Dienst hat kein Kachelraster und ignoriert sie.Nein
zoomLevelDie niedrigste und höchste Zoomstufe, die der Dienst unterstützt, als [min, max]. Eine Zoomstufe anzufordern, die der Server nicht hat, ergibt leere Kacheln.Nein
creditsDer Quellenangabetext. Siehe Quellenangabe und Credits — wirkt nur zusammen mit creditsUrl.Nein
creditsUrlDer Link hinter diesem Quellenangabetext.Nein

Nur WMTS

EigenschaftBedeutungErforderlich
subdomainsDie Buchstaben, die reihum für den Platzhalter {s} eingesetzt werden, als eine Zeichenfolge ohne Trennzeichen — abc bedeutet a, b und c. Anbieter stellen dies bereit, damit ein Browser Kacheln gleichzeitig von mehreren Hostnamen abrufen kann. Weglassen, wenn Ihre url kein {s} enthält.Nein
tileSizeDie Kachelkante in Pixeln. Standardmässig 256, was fast jeder Dienst verwendet; manche neueren liefern 512.Nein

Nur WMS

EigenschaftBedeutungErforderlich
layersDie anzufordernden Layer-Namen, genau wie sie der Dienst benennt. Mehrere werden mit Komma getrennt.Ja
formatDer Bildtyp als MIME-Type — image/jpeg für fotografische Bilder, image/png wenn Sie Transparenz brauchen.Ja
stylesDer Layer-Stil, standardmässig leer. Beachten Sie den Plural: Ein Schlüssel style wird ignoriert, was leicht zu übersehen ist, weil die Anfrage trotzdem gelingt und einfach den Standard-Stil des Servers verwendet.Nein
versionDie WMS-Spezifikationsversion. Standardmässig 1.3.0. Ältere Server benötigen unter Umständen 1.1.1, das sich in der Reihenfolge der Koordinaten unterscheidet.Nein
tiledtrue fordert die Karte als viele kleine Kacheln an, false als ein grosses Bild pro Ansicht. Tiled ist meist schneller und schont den Server; manche Dienste unterstützen nur eines von beidem.Nein

Welche Projektionen funktionieren

Die Kartenansicht selbst ist immer Web Mercator. Ihr epsg teilt der App mit, in welcher Projektion der Dienst veröffentlicht, und die Karte reprojiziert davon ausgehend — aber nur für Koordinatensysteme, die sie kennt.

  • 3857 (Web Mercator) und 4326 (WGS84 Länge/Breite) funktionieren immer. Sie sind eingebaut.
  • Alles andere ist nicht unterstützt, sofern Sie es nicht getestet haben. Andere Codes setzen voraus, dass eine Projektionsdefinition registriert ist, bevor die Karte aufgebaut wird, und das geschieht nicht zuverlässig. Ein Schweizer LV95-Dienst (2056) mag funktionieren; bei einem ETRS89/UTM-Dienst wie 25832 ist das sehr unwahrscheinlich.

Veröffentlicht Ihr Dienst nur in einem nationalen Gitter, ist der verlässliche Weg, Ihren Anbieter zu fragen, ob er auch 3857 oder 4326 bedient — die meisten tun das —, statt den nationalen Code zu übergeben und zu hoffen.

Durchgerechnete Beispiele

Ein WMTS-Dienst

Die Standardkacheln von OpenStreetMap, mit ausgefüllten Subdomains und Quellenangabe. Dies ist der Link, der für die Screenshots auf dieser Seite verwendet wurde:

{"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"}

Codiert in einen Link:

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

Ein WMS-Dienst

Die 1:10 000-Landeskarte von swisstopo, gekachelt, beschränkt auf das Gebiet, das die Schweiz tatsächlich einnimmt, damit die Karte anderswo nicht leer bleibt:

{"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/"}

Codiert in einen Link:

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

Quellenangabe und Credits

credits und creditsUrl sind für die App optional, für Ihre Lizenz meist nicht. Die meisten Kartendienste, darunter OpenStreetMap und jede nationale Vermessungsbehörde, verlangen, dass ihre Quellenangabe überall erscheint, wo ihr Bildmaterial gezeigt wird.

Sind sie ausgefüllt, erscheinen sie an zwei Stellen:

  • In der App, als Link im Panel Information — der Schaltfläche i in der unteren rechten Ecke — mit dem Text © Map Data: gefolgt von Ihrem credits-Text, der auf Ihre creditsUrl verweist. Verifiziert am 2026-09-17: Ein Link mit der Quellenangabe von OpenStreetMap erzeugte dort © Map Data: OpenStreetMap contributors, genau wie die eingebauten Karten © Map Data: Google erzeugen.
  • In der Fusszeile jedes Exports und Ausdrucks, was meist die für eine Lizenz massgebliche Stelle ist.

Beachten Sie, dass die Quellenangabe in der App hinter dieser Schaltfläche verborgen ist und nicht auf der Karte eingezeichnet wird. Verlangt Ihre Lizenz eine ohne Klick sichtbare Quellenangabe, ist die Fusszeile des Exports die Stelle, auf die Sie sich verlassen können.

Hinweis: Beide Eigenschaften sind erforderlich, sonst wird keine verwendet. Wird credits ohne creditsUrl angegeben, erscheint gar nichts — kein Link im Panel und eine leere Export-Fusszeile, ohne jede Warnung. Ist die Quellenangabe für Ihre Lizenz wichtig, setzen Sie beide und prüfen Sie einen Export, bevor Sie ihn veröffentlichen.

Die 3D-Ansicht

Ein mapType-Dienst funktioniert in der 3D-Ansicht ebenso wie in der 2D-Karte, auch wenn die 3D-Ansicht ihn auf einem anderen Weg aufbaut. Zwei Folgen sind es wert, bekannt zu sein:

  • Haben Sie die Abdeckung mit extent eingeschränkt, legt die 3D-Ansicht einen schwachen, weltweiten Hintergrund unter Ihren Dienst, damit der Globus ausserhalb Ihres Gebiets keine verschmierten Ränder zeigt. Dieser Hintergrund ist nicht Ihr Dienst und trägt keine Quellenangabe von Ihnen.
  • Die Projektionswarnung von oben gilt in 3D noch stärker. Behandeln Sie 3857 und 4326 als die unterstützten Fälle und testen Sie alles andere in beiden Ansichten, bevor Sie sich darauf verlassen.

Kombination mit anderen Parametern

mapType wird unabhängig von den übrigen URL-Parametern gelesen, sodass ein einzelner Link Ihren Kartendienst und ein vorgeladenes Overlay mit layer= tragen kann. In einem iFrame-Embed funktionieren die Parameter genauso wie in einem normalen Link.

Hinweis: Ein Link, der sowohl mapType als auch einen Share trägt, hört auf, der Link zu sein, den Sie gesendet haben. Wenn die App einen Share öffnet, schreibt sie die Adressleiste auf die eigene Adresse des Shares um und behält nur dessen Parameter — mapType verschwindet damit aus der URL. Die Karte funktioniert für diese Sitzung weiterhin, aber die Adresse ist nicht mehr als kombinierter Link kopierbar, als Lesezeichen speicherbar oder neu ladbar. Bewahren Sie das Original irgendwo auf, falls Sie es erneut brauchen, und denken Sie daran, dass das Neuladen beim ersten Laden von oben dafür ebenfalls nötig ist.

Eine so geladene Karte teilen

Öffnen Sie map.army mit einem mapType-Link und erstellen dann einen Share, erhält die Person, die Ihren Share öffnet, nicht Ihren Kartendienst. Sie erhält ihren eigenen Standard-Hintergrund mit Ihrem Overlay darüber.

Das ist das wahrscheinlichste Missverständnis auf dieser Seite, weil nichts auf Ihrem Bildschirm darauf hindeutet: Ihr Share sieht für Sie richtig aus. Der Share speichert, welche Basiskarte ausgewählt war, aber nicht deren Definition, und Ihr Dienst war nie Teil der Liste der empfangenden Person, sodass deren App auf ihren eigenen Standard zurückfällt.

Um jemandem sowohl Ihre Hintergrundkarte als auch Ihr Overlay zu geben, senden Sie stattdessen den mapType-Link selbst — mit dem Parameter layer=, falls das Overlay mitkommen soll — statt eines Shares.

Es gibt drei unterschiedliche Fehlerfälle, und sie sehen auf dem Bildschirm unterschiedlich aus.

Eine leere Karte beim ersten Laden. Vorerst zu erwarten — laden Sie die Seite neu. Siehe Den Link zweimal öffnen.

Ihr Dienst wird ignoriert, und die normalen Karten erscheinen. Das JSON war lesbar, beschrieb aber keinen brauchbaren Dienst — ein type, der nicht wmts oder wms ist, eine fehlende url, oder ein WMS ohne layers oder format. Die App greift auf ihre eingebaute Liste zurück. Prüfen Sie die erforderlichen Eigenschaften für Ihren Diensttyp.

Gar keine Karten, auch nach einem Neuladen nicht. Entweder konnte das JSON nicht gelesen werden — ein überzähliges Komma, eine nicht geschlossene Klammer, ein nicht codiertes Zeichen — oder der Dienst ist nicht auf eine Weise erreichbar, die die App nutzen kann. Fügen Sie das JSON vor dem Codieren in einen beliebigen Validator ein. Prüfen Sie beim Dienst diese drei Dinge in dieser Reihenfolge:

  1. Cross-Origin-Zugriff. map.army zeichnet jede Kachel über ein Canvas, damit Helligkeit, Farbton und Sättigung angepasst werden können und die Karte in einen Export eingehen kann. Das bedeutet, Ihr Dienst muss einen Access-Control-Allow-Origin-Header senden, der den Origin der App zulässt. Ein Dienst, der das nicht tut, zeigt überhaupt nichts, obwohl genau dieselbe Kachel-URL in einem Browser-Tab einwandfrei öffnet. Das ist die häufigste Ursache für einen korrekt aussehenden Dienst, der nie erscheint, und am schwersten zu erraten.
  2. HTTPS. Ein Browser blockiert reines HTTP-Bildmaterial innerhalb einer HTTPS-Seite.
  3. Erreichbarkeit. Bestätigen Sie, dass der Dienst vom Rechner aus antwortet, auf dem der Browser läuft, und nicht nur aus Ihrem eigenen Netzwerk heraus.

Lässt sich Ihr Dienst nicht dazu bringen, Cross-Origin-Header zu senden, ist die übliche Lösung, ihm einen Proxy vorzuschalten, der das kann, auf Ihrer eigenen Infrastruktur.

  • Nur ein Dienst pro Link. Es gibt keine Möglichkeit, eine Liste zu übergeben, und keine, Ihren Dienst zu den eingebauten Karten hinzuzufügen.
  • Er wird nicht gespeichert. Jeder Besuch braucht den Link erneut.
  • Er erscheint nicht als neuer Eintrag im Options-Panel — er nimmt den Platz der gesamten Liste ein, und die Zeile Kartentyp verschwindet.
  • Er reist nicht mit einem Share. Siehe oben.
  • epsg, epsgExtent und tileSize werden hier berücksichtigt, aber nicht in der eigenen Konfigurationsdatei einer Bereitstellung, sodass ein Link einen Dienst präziser beschreiben kann, als es eine installierte Bereitstellung kann.

Für eine dauerhafte Liste Ihrer eigenen Dienste, auswählbar wie jede andere Karte und von allen Nutzenden dieser Bereitstellung gemeinsam genutzt, siehe Frei vs Pro.

Wie es weitergeht