DE:Slippy Map

From OpenStreetMap Wiki
Jump to navigation Jump to search

Slippy Map (englisch für flinke Karte) ist ein Begriff, der auf moderne Internetkarten bezeichnet, deren Maßstab und Kartenausschnitt veränderbar ist (die Karte bewegt sich durch das Ziehen der Maus).

{{Slippymap|lat = 48.2274 |lon = 16.3835 |zoom = 15 |width = 300 |height = 300 |layer = Leaflet }}

Im Zusammenhang von OpenStreetMap bezeichnet die Slippy Map die Kartendarstellung auf der Homepage von openstreetmap.org. Dabei handelt es sich um eine Benutzeroberfläche zur Ansicht von OpenStreetMap-Daten.

Voreingestellt ist die Ansicht im Standardstil, aber es sind auch andere Kartendarstellungen(en) auswählbar.

  • Auf der Seite de:Browsing befindet sich eine Bedienungsanleitung für die Homepage, inklusive der Sippy Map.
  • Die Seite Deploying your own Slippy Map erläutert Herangehensweisen zur Einrichtung einer Slippy Map auf der eigenen Webseite.
  • Leaflet bezeichnet die Software, die von der Slippy Map genutzt wird.
  • Unter Wiki:DE:Karten steht, wie Kartendarstellungen in dieses Wiki eingebunden werden können.

Technische Details

Die Slippy Map ist eine Ajax-Komponente. JavaScript läuft im Browser und lädt Kartenausschnitte von einem Server im Hintergrund (ohne dass die ganze Seite neu geladen werden muss). Dadurch entsteht das Gefühl einer flexibel verschiebbaren und skalierbaren Karte. Die Umsetzung erfolgt mit einer JavaScript-Bibliothek, entweder OpenLayers oder Leaflet. Die Karte wird aus kleinen quadratischen Kacheln, auf englisch „Tiles(en)“, zusammengesetzt. Sie werden von einem „Tile-Server“ erstellt und angeboten.

Rendern der Kartenkacheln

Das Rendern ist das Umsetzen der vektorbasierten in rasterbasierte Kartendaten, sodass Kartenkacheln entstehen. Es ist ein stark Ressourcen beanspruchender Prozess, für den es mehrere Softwarelösungen gibt. Der Server rendert Kartenkacheln nicht in Echtzeit für jeden Benutzer einzeln, sondern die Kartenkacheln werden vorab gerendert und auf einer Festplatte gespeichert. Es gibt nur wenige Programme, die gezeigt haben, dass sie auch unter hoher Last regelmäßig Kacheln für weltweite Karten erstellen können.

OpenStreetMap „Standard-Tile-Server“

Mapnik ist die Rendering-Software, die die Kacheln des Standardstils erzeugt. Mapnik wird auch für viele weitere Slippy Maps wie OpenCycleMap(en) und Transport Map, die auf der Homepage zu finden sind, verwendet.

Mapnik-Kartenkacheln werden derzeit auf tile.openstreetmap.org erstellt. Sie werden auf Basis von minütlichen diff-Dateien erzeugt, so dass die meisten Änderungen innerhalb weniger Minuten erscheinen. Ab und zu (alle paar Monate) wird noch der planet dump verwendet, um Fehler zu beseitigen. Früher wurde die Mapnik-Ebene nur wöchentlich gerendert.

Das Rendern für OpenStreetMap wird über das Apache-Modul Mod tile(en) realisiert, welches speziell für die hohen Lasten von OSM entwickelt wurde. Enthalten sind auch ein Speicher (Cache) und eine Warteschlange für Aktualisierungsaufträge. Jede Kartenkachel verfügt über einen Zeitstempel, der angibt, wann sie zuletzt erstellt wurde, und eine Markierung ("dirty flag"), die anzeigt, ob sie neu erstellt werden soll. Der Renderer arbeitet nach folgenden Regeln:

  • Wird eine Änderung in der Datenbank gemacht, so wird versucht die richtigen Kacheln als "dirty" zu markieren.
  • Jedes Mal, wenn eine Kachel abgerufen wird, wird geprüft, ob sie älter als drei Tage ist. Ist dies der Fall, wird sie als "dirty" markiert (und später gerendert).
  • Ein Hintergrundprozess rendert alle Kartenkacheln, die als "dirty" markiert sind.

Auf diese Weise wird ein Gebiet, das niemand aufruft, nicht häufig neu gerendert. Kacheln werden quasi gemäß dem Interesse bzw. der höchsten Aufmerksamkeit gerendert. Wird eine Kartenkachel als "dirty" markiert, werden nicht (!) auch die "dirty"-Flags aller Unter-Kacheln gesetzt.

Wenn man graue Bereiche oder unscharfe vergrößerte Kacheln sieht, heißt das, dass für diese Kachel keine Daten vorhanden waren und sie sich nun in der Warteschlange für das Rendern befindet. Man kann den Status einer Kachel abrufen, indem man den URL der Kachel übernimmt (rechter Mausklick*):

und dann /status am Ende anfügt:

was dir den Erstellungszeitstempel sowie den "dirty"-Status ausgibt.

Um das Rendern einer Kachel zu erzwingen, kann man an die URL /dirty anhängen.

*) Das funktioniert nur, wenn man über www.openstreetmap.org/#map=... auf die Karte geht (auf www.openstreetmap.de/karte.html?... z.B. geht es nicht). Im Kontextmenü wählt man beim Firefox am einfachsten "Grafikadresse kopieren" oder direkt "Grafik anzeigen" (dann kann man in der Adresszeile direkt das "/status" ergänzen). Im InternetExplorer muss man ggf. "Element untersuchen" auswählen und sich dann unten im DOM-Explorer die hervorgehobene Codezeile kopieren (wieder mit Rechtsklick). Das Kopierte fügt man dann in die Adresszeile ein und löscht alles bis auf die Adresse des PNGs.

Rendern mit Osmarender (Tiles@Home)

Früher gab es noch Darstellung namens Osmarender, welche auf ein verteiltes System zum Erstellen der Kartenkacheln zurückgriff. Das Projekt Tiles@home wurde eingestellt und diese Ansicht ist nun nicht mehr verfügbar.

Siehe auch

Erstelle und benutze deine eigene Slippy-Map
Karten auf die eigene Webseite stellen unter der Benutzung einiger Schnittstellen oder anderer Ansätze
Static map images(en)
eingebettete Bilder mit dem HTML-img-Tag als Karten nutzen
Kartenkacheln(en)
Definition und weiterführende Verweise
Slippy map tilenames
Berechnung der Tile-Bezeichnung (d. h. die URL der Kachel) aus den Koordinaten (Zoom, X, Y)
Vorlagen für Mapnik und ähnliche Programme
Browsing
grundlegende Bedienungsanweisung für die Slippy Map der Homepate
Layer URL parameter
Funktionsweise übereinanderliegender Karten auf der Homepage
Standard tile layer
Erklärung der Standardkarte für Benutzer auf https://www.openstreetmap.org/ mit Schwerpunkt auf der Legende