Warum Stadia Maps statt OpenStreetMap-Tiles?
Für die Foto-Weltkarte wollte ich OSM-Daten, aber keinen Kartenserver aus Übersee. Warum ich mich gegen die offiziellen OSM-Tiles und für Stadia Maps mit EU-Endpoint entschieden habe.
Kategorie: Technik
Als ich die Foto-Weltkarte mit Leaflet eingebaut habe, stand gleich zu Beginn die Frage: woher kommen die Kartentiles? Die naheliegende Antwort — „einfach OpenStreetMap” — ist leider nicht ganz so einfach. Dieser Post erklärt, was ich geprüft habe und warum am Ende Stadia Maps gewonnen hat.
Warum nicht direkt die OSM-Tiles?
OpenStreetMap betreibt unter tile.openstreetmap.org einen eigenen Tile-Server. Technisch funktioniert der tadellos, aber die Tile Usage Policy verbietet den Einsatz für Produktiv-Sites mit nicht-trivialer Reichweite:
OpenStreetMap data is free for everyone to use. Our tile servers are not.
Konkret:
- Keine systematische Nutzung für kommerzielle oder stark frequentierte Seiten.
- Verbindliches HTTP-Referer- und User-Agent-Setting, damit Missbrauch zugeordnet werden kann.
- Jederzeit drosselbar oder blockierbar, wenn die Ressourcen knapp werden.
Die OSM Foundation lebt von Spenden. Wer ernsthaft Karten einbinden will, soll entweder selbst Tiles hosten oder einen Dienstleister nutzen, der das übernimmt und die OSM-Projekte finanziell unterstützt.
Was waren meine Kriterien?
Ich wollte für den Tile-Dienst genauso strenge Maßstäbe wie für den Rest der Site:
- Daten aus Europa. Der Tile-Endpoint muss seine Requests in der EU verarbeiten — keine zwingenden US-Transits.
- DSGVO-tauglich. Es muss einen klaren Auftragsverarbeitungsvertrag (AVG / DPA) geben und möglichst keine versteckten Third-Party-Cookies, Tracker oder Fingerprinting über die Tiles.
- OSM-Basisdaten. Ich möchte dasselbe Kartenbild wie OSM selbst, weil es mir gefällt und weil die Lizenz (ODbL) transparent ist.
- Sinnvolles Free-Tier. Für eine private Seite darf es nichts kosten, solange ich unter einer Hobby-Grenze bleibe.
- Keine eigene Infrastruktur. Self-hosting von Tile-Servern (z. B. mit
tileserver-glplus OpenMapTiles-Daten) macht aus einer kleinen Foto-Sektion ein ernsthaftes Infra-Projekt. Wollte ich für diese Seite nicht.
Warum Stadia Maps
Stadia Maps ist ein kleiner Anbieter aus den USA mit klarem Fokus auf Privacy und OSM-Daten. Entscheidend waren für mich:
- EU-Endpoint
tiles-eu.stadiamaps.com. Tiles werden von Servern in Frankfurt ausgeliefert, nicht durchgeroutet über die USA. - DSGVO-konform dokumentiert. Stadia stellt einen DPA zur Verfügung und zählt Requests über den Referer, nicht über Cookies oder Fingerprints. Es gibt keine Third-Party-Skripte, nur die Tile-Bilder.
- Basierend auf OpenMapTiles + OSM. Die visuellen Styles (z. B.
alidade_smooth, den ich verwende) leiten sich aus der OSM-Geometrie ab. Attribution und Lizenz bleiben sauber — sowohl OSM als auch OpenMapTiles werden im Copyright-Feld der Karte erwähnt. - Free Tier mit 200.000 Tile-Requests pro Monat. Für eine persönliche Seite ist das massiv über dem Bedarf; ich lande mit einer embedded Map typischerweise bei vier- bis fünfstelligen Requests im Monat.
- Domain-basierte Authentifizierung. Kein API-Key im Frontend-JS — die Zuordnung läuft über den Referer-Header, was auch die Stolpersteine bei der CSP erklärt. Damit wandert kein Secret im Client-Bundle mit.
Warum nicht Mapbox, Google Maps, MapTiler?
Die anderen Kandidaten habe ich kurz durchgespielt:
- Mapbox ist US-basiert ohne EU-Endpoint. Datenschutzrechtlich ist das zwar lösbar (SCCs, EU-US Data Privacy Framework), aber für eine Hobby-Seite mehr Papierkram als mir lieb ist.
- Google Maps fällt für mich aus einem einzigen Grund raus: Tracking und Cookies, sobald das JS lädt. Widerspricht meinem „Null Drittanbieter-Requests”-Anspruch.
- MapTiler ist ein schweizer Anbieter mit EU-Hosting und wäre meine zweite Wahl gewesen. Die Free-Tier-Grenzen sind niedriger (25.000 Tile-Loads/Monat) und der Style ist mir optisch etwas zu bunt. Aber: inhaltlich vergleichbar und definitiv DSGVO-freundlich.
- Self-hosting mit
tileserver-gl+ OpenMapTiles-Dump war die ehrlichste Alternative. Scheiterte bei mir am Plattenplatz (OpenMapTiles-Planet-Dump ~90 GB) und dem Aufwand für Updates.
Was ich mir mitnehme
- „Einfach OSM” ist selten einfach. Die OSM-Tile-Server sind Community-Infrastruktur, keine Allzweck-API. Wer sie auf Produktiv-Sites einbindet, schadet dem Projekt — oder wird gedrosselt.
- DSGVO-Compliance hängt an der Server-Lokation, nicht am Firmensitz. Ein EU-Endpoint plus DPA macht auch einen US-Anbieter handhabbar. Ohne EU-Endpoint ist der Firmensitz egal — es wird aufwändig.
- Pay-what-you-use ist fair. Stadia Maps spendet laut eigener Aussage einen Teil der Einnahmen an OpenStreetMap. Wenn ich irgendwann über das Free Tier rausfliege, ist das dann auch ein Beitrag zurück an das Ökosystem, dessen Daten ich nutze.