Geospatial – News

Generierung und Verwaltung von Karten-Tiles

11 Oktober 2013

Generierung und Verwaltung von Tiles (Kacheln) sind komplexe Prozesse. In diesem Blog beschreiben wir die grundsätzlichen Herausforderungen im Bezug auf Tiles – Punkte, welche für die erfolgreiche Durchführung Ihres Webmapping-Projekts wesentlich sein können.

In den letzten Jahren hat Camptocamp eine Methodik wie auch die Tools entwickelt, welche zur Generierung und optimaler Verwaltung von Tiles nötig sind. Zahlreiche Aufgaben wurden uns in diesem Bereich bereits gestellt, und im Verlaufe dieser Projekte kristallisierten sich 5 grosse Herausforderungen heraus:

  • Verwaltung des Tile-Caches
  • Generierungszeit
  • Speicherung von Tiles
  • Unterschiedliche Infrastrukturen für geographische Daten
  • Aktualisierung von Tiles

Verwaltung des Tile-Caches

Das Prinzip der Tiles ist die Vorprozessierung der Daten, indem verschiedene Mechanismen zur Speicherung in einem Cache genutzt werden und so die Performanz einer Internetapplikation optimiert wird.

Die GIS-Welt hat sich über die OGC auf den Standard Web Map Tile Service (oder WMTS) geeinigt, um georeferenzierte Tiles in einem Netzwerk zu publizieren. Frühere Bemühungen fanden vorwiegend innerhalb der OSGeo mit den Vorschlägen WMS Tile Caching (WMS-C) oder Tile Map Service (TMS) statt.

Anstatt die geographischen Daten dynamisch abzufragen und so einen hohen Verbrauch an Serverressourcen, Wartezeiten in der Applikation und Risiken bezüglich grösserer Auslastung in Kauf zu nehmen, erlaubt die Erstellung von Tiles die Vorbeugung dieser Risiken und Probleme. Dabei müssen vor allem die verschiedenen Ebenen des Tile-Caches berücksichtigt werden:

  • am ursprünglich gespeicherten Ort
  • in einem dazwischengeschalteten Proxy
  • im Webbrowser

Um die Performanz und die Bandbreite zu optimieren, sollte man die Speicherung der Tiles auf allen drei Ebenen beachten. Zu beachten ist hierbei die Löschung des Caches auf den verschiedenen Stufen bei einer Aktualisierung. Dazu bestehen verschiedene Techniken, von der Definition eines Parameters für die Lebenszeit der Kacheln bis zur Möglichkeit, über ein Token zwischen zwei Versionen von Tile-Sets zu wechseln.

Generierungszeit

Fall die Tiles in einem sehr grossen Perimeter in einem sehr hohen Detailgrad generiert werden sollen, vergrössert sich die Anzahl der Tiles exponentiell. Dementsprechend erhöht sich auch die Generierungszeit, sofern man nicht eine adäquate Strategie anwendet:

  • Bei Vektor-Daten werden nur dort Tiles generiert, wo Informationen vorhanden sind. Dies verhindert die Generierung von leeren Tiles.
  • Verteilung der Generierung auf mehrere Server und Gebrauch von Warteschlagen-Systemen (wie zum Beispiel Amazon Simple Queue Service – SQS).
  • Falls die Nutzerzahlen es erlauben, kann man die Generierung der Tiles in den letzten Zoomlevels laufend bzw. je nach Benutzerverhalten realisieren. Um den Server gleichzeitig vor zu vielen, kleinen Anfragen zu schützen übersetzt ein Proxy die Anfragen über ein Meta-Tiling.

Speicherung von Tiles

Die grossen Mengen generierter Tiles müssen gespeichert werden. Dabei stellen sich mehrere Herausforderungen:

  • Die klassischen Harddisks und Dateisysteme sind nicht vorgesehen für die enorm grosse Zahl relativ kleiner Dateien. Eine spezielle Konfiguration ist nötig, insbesondere um die Indizes zu verwalten.
  • Das Kopieren der Tiles auf einen anderen Server kann in gewissen Fällen so zeitintensiv werden, dass es praktisch unmöglich wird. Es ist deshalb essentiell, die Tiles direkt am richtigen Ort zu speichern.
  • Das Backup einer grossen Menge von Tiles, falls möglich (siehe vorheriger Punkt bezgl. Kopieren) braucht Zeit und benötigt eine entsprechend grössere Harddisk. So ist es besonders wichtig eine persistente und redundante Speicherung zur Verfügung zu haben (wie zum Beispiel Amazon S3) oder aber in der Lage zu sein, falls nötig die Tiles in angemessener Zeit neu zu generieren.

Unterschiedliche Infrastrukturen für geographische Daten

  • Die Cloud Computing Lösungen bieten Tools zur persistenten und redunanten Speicherung sowie virtuelle Disks ohne Beschränkung der Anzahl Dateien oder der Dateigrösse. Eine solche Lösung entspricht den Bedürfnissen der Speicherung von Tiles am besten.
  • Automatisierte Administrationstools müssen es erlauben, Server extrem schnell aufzusetzen um diese temporär für die Berechnung der Tiles zu gebrauchen und so eine adäquate Rechenstärke einsetzen zu können.
  • Interne Infrastrukturen sind jedoch nach wie vor weitverbreitet und es soll deshalb auch möglich sein, Tiles auf lokalen Servern (Linux oder Windows) zu generieren und zu verwalten.
  • In Abhängigkeit der verfügbaren Infrastruktur können verschiedene Tiles-Gefässe geeignet sein: virtuelle Cloud-Disk, als einzelne Datei, in einer Baumstruktur, in einer SQL-Datenbank oder auch in einer NoSQL-Datenbank.
  • Verschiedene Systeme von (Meta-)Tiling sind verfügbar, oft sind diese von der bevorzugten Umgebung abhängig (C, Java, Python).

Aktualisierung von Tiles

Die Aktualisierung der Tiles hängt stark mit den obigen Punkten zusammen. Je nach Anzahl der Tiles, verfügbarer Zeit für die Aktualisierung, benutzter Infrastruktur und Cache-Konfiguration müssen folgende Elemente beachtet werden:

  • Um effizient zu sein, insbesondere wenn die Anzahl der Tiles sehr gross ist oder falls die Aktualisierung sehr häufig vorgenommen werden soll, möchte man nur jene Tiles aktualisieren, welche effektiv geändert haben. Dafür braucht es eine Liste der Unterschiede zwischen den zwei Datensätzen (vorher – nachher). Das System zur Generierung der Tiles muss ausserdem die Unterschiede berücksichtigen können.
  • Die Tiles sollten zentral gespeichert werden um mehrfache Aktualisierungen verschiedener Gefässe und das Risiko der De-Sychronisationen der Tiles zu verhindern.
  • Nach einer Aktualisierung müssen die verschiedenen Caches geleert werden um sicherzustellen, dass die aktuellsten Tiles effektiv bis zum Nutzer kommen.

Camptocamp bietet Leistungen im Bereich der Beratung, Schulung, Support oder Umsetzung der Generierung und Verwaltung von Tiles an. Zögern Sie nicht, uns mit Ihrer spezifischen Problemstellung herauszufordern: geospatial@camptocamp.com