Allgemein

Der Begriff Kachelung (engl. tiling) steht für die Methode, Karten in kleinere, vordefinierte Bildkacheln zu zerlegen, diese auf einen Server abzulegen und zur Verfügung zu stellen. Jede Kachel wird dabei durch einen Request vom Server angefordert und vom Client zur Gesamtkarte zusammengefügt. Ziel ist die Erhöhung der Benutzerfreundlichkeit durch bessere Performance in der Anzeige von Karten.

Anders als bei klassischen WMS besteht ein kachelnder Dienst aus festen Zoomstufen, die in einem bestimmten Verhältnis zueinander stehen. Der Aufbau solcher Bildpyramiden erfolgt dabei üblicherweise durch quadtrees, bei denen eine Kachel, in der Regel 256 x 256 Pixel breit, jeweils vier Kacheln der nächst tieferen Zoomstufe repräsentiert. Der Maßstab ändert sich dabei jeweils um den Faktor 2.

Clientseitige Kachelung

Web Map Clients werden immer leistungsfähiger und können Funktionen, wie das Überlagern von Layern übernehmen, die bisher nur serverseitig erledigt wurden. Bei der Verwendung von kachelnden Diensten übernimmt der Client das Verwalten der Kacheln, d.h. die einzelnen Kacheln über Requests anfordern, diese im HTML Dokument positionieren, zur Anzeige bringen und schliesslich wieder löschen, wenn sie den Anzeigebereich verlassen.

Durch die vordefinierte BoundingBox wird für jede Zoomstufe ein virtuelles Gitternetz (engl. grid) erstellt und im Referenzsystem positioniert. Mit Hilfe dieses Netzes wird es möglich, jedem Platzhalter eine Kachel zuzuordnen. JavaScript Clients, wie Openlayers oder Google Maps, realisieren den Aufbau solcher Gitter mit einer Folge von <div> oder <img> Elementen, welche über das DOM angesprochen werden können. Befindet sich ein Platzhalter im geforderten Anzeigebereich, wird über das src Attribut mit Hilfe einer definierten Schnittstelle die Grafik angefordert und angezeigt. Verlässt er den Bereich, wird das <div> bzw. <img> Element wieder geleert und gelöscht. Das Grundprinzip der clientseitigen Verwaltung der Kacheln ist bei Flash oder Java Clients äquivalent.

Um die Karte beim Verschieben schneller zur Verfügung zu stellen, kann ein Puffer außerhalb des Anzeigebereichs angegeben werden, der, obwohl noch nicht sichtbar, schon vorgeladen wird. Dieser darf jedoch nicht zu groß gewählt sein, da sonst das Datenvolumen unnötig steigt und die Perfomance der Anwendung darunter leidet. In der Praxis hat sich ein Puffer von zwei Reihen um den Anzeigebereich bewährt.

Caching

Durch clientseitiges Speichern der Kacheln (engl. caching) kann sowohl die Latenzzeit beim erneuten Laden der Kacheln, als auch die Netzbelastung reduziert werden1. Dadurch wirkt die Web Map Anwendung flüssiger und erhöht die Usability. Vor allem für statische Daten, welche sich selten ändern, ist das Cachen eine sehr effektive aber dennoch oft vernachlässigte Variante, Netz- und CPU Ressourcen zu minimieren. Wird jedoch zu lange, statt auf die Originalquelle, auf den clientseitigen Speicher zugegriffen, werden dem Nutzer vermeintlich aktuelle Informationen dargestellt, die jedoch schon veraltet sind. Ein gutes Mittelmaß für die Dauer des Cachen ist hier wichtig.

Schnittstellen

Am 12.09.2006 kam es auf der FOSS4G24 Konferenz in Lausanne zur “Map Tiling Bird of a Feather session” mit der Absicht, einen Weg zu finden, Web Maps für dynamische Clients effektiv zu kacheln und zu cachen. Die daraus entstandenen Empfehlungen TMS und WMS-C sind für die Kommunikation zwischen Tile Caching fähigem Client und Server zur Zeit am weitesten verbreitet, jedoch nicht standardisiert. Seit April 2010 hat das OGC nun den ersten Standard im Bereich der kachelnden Dienste veröffentlicht.

Tile Map Service Specification

TMS ist der erste Vorschlag, welcher aus einer Gruppe von Teilnehmern entstand, die an einer Client-Server-Lösung im Bereich Tile Mapping interessiert waren. Es ist weder ein offizieller Standard, noch wird es von der OSGeo als offizielles Projekt oder Arbeit der Organisation betrachtet.2 Jedoch wird er nach wie vor in der Praxis eingesetzt. Vor allem die weit verbreitete Implementierung des WMS-C/TMS Servers TileCache von MetaCarta nutzt nach wie vor diese Schnittstelle. Der Zugriff auf die Kacheln wird hierbei über eine REST Schnittstelle bereit gestellt.

WMS Tiling Client Recommendation

Diese Empfehlung beschreibt Erweiterungen und Einschränkungen der OGC WMS 1.1.1 Spezifikation, um mittels getMap Request auf gekachelte Karten zuzugreifen. Voraussetzung für das sogenannte WMS Tile Caching ist, dass Kacheln mit einer festen Breite und Höhe georeferenziert in festgelegten Maßstäben vorliegen. Die Capabilities müssen mit diesen Informationen in Form eines Profils erweitert bzw. spezifiziert werden. Im Gegensatz zum herkömmlichen WMS Request sind an Hand dieser Angaben die URL Parameter einzuschränken, um eine gültige Kachelanfrage durchführen zu können.3

Web Map Tile Service Implementation Standard

Im April 2010 veröffentlichte das OGC den ersten Standard für Web Map Tile Services. Dieser ging aus der OSGeo Tile Map Service Specification hervor und unterstützt ressourcenund prozedurorientierte Architekturstile.4 Im praktischen Teil der Arbeit wird der WMTS exemplarisch mit HTTP KVP umgesetzt. SOAP und REST Implementierungen für WMTS werden durch den von Herrn Thomas Jurk aufgesetzten Tile Service GeoWebCache zum Zeitpunkt der Bearbeitung noch nicht unterstützt, weshalb sich hier auf den prozedurorientierten Architekturstil mit KVP konzentriert wird.
Aufbau Im Gegensatz zu TMS und WMS-C, bei denen die Bildpyramide durch die Ausdehnung der entsprechenden Karte bzw. des Layers definiert wird, erfolgt hier eine Trennung. Das Gerüst der Bildpyramide ist hier als räumliches Konstrukt mit bestimmter Ausdehnung in einer Anzahl von festen Maßstäben in einem festen Koordinatenreferenzsystem zu betrachten und steht erst einmal für sich allein. Die Karte wird nun durch Parameter in diesem Gerüst positioniert. Dieses Bildpyramidengerüst wird TileMatrixSet genannt und sollte eine möglichst große räumliche Ausdehnung besitzen. Vorteil hierbei ist, dass verschiedene Layer oder auch Dienste auf ein und dasselbe TileMatrixSet zugreifen und dadurch besser überlagert werden können. Die, bei kachelnden Diensten, eher eingeschränkte Interoperabilität soll dadurch verbessert werden.


1.	OGC: Web Map Tile Service Implementation Standard. Version: 2010.
	http://portal.opengeospatial.org/files/?artifact_id=35326, Abruf: 12.07.2010.
2.	OSGeo: Tile Map Service Specification. Version: 2006.
	http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification, Abruf: 26.07.2010.
3.	OSGeo: WMS Tiling Client Recommendation. Version: 2006.
	http://wiki.osgeo.org/wiki/WMS_Tiling_Client_Recommendation, Abruf: 26.07.2010.
4.	OGC: Web Map Tile Service Implementation Standard. Version: 2010.
	http://portal.opengeospatial.org/files/?artifact_id=35326, Abruf: 12.07.2010.