Unterschied zwischen WMTS und WMS?

63

Was ist der Hauptunterschied zwischen a

Webkarten-Kachelservice (WMTS)

und ein

Webkartendienst (WMS)

Wann solltest du eins über dem anderen wählen?

Was sind die (Un-) Vorteile, wenn man sich für einen anderen entscheidet?

Ich habe die Wikipedia-Einträge gelesen.

Edward van Raak
quelle

Antworten:

44

Ein WMTS liefert Kacheln (meist 256x256 Pixel), während WMS ein Bild pro Anforderung liefert.

Der Hauptvorteil von Kacheln besteht darin, dass sie auf der Serverseite vorgerendert und auf der Clientseite zwischengespeichert werden können. Dies verringert die Wartezeit für die Daten und die Bandbreite. Andererseits benötigen Sie viele Gigabyte, wenn Sie die ganze Welt vorrendern möchten. Das meiste davon wird nur Wasser enthalten.

AndreJ
quelle
69

Der WMS-Standard ermöglicht es dem Kunden, eine beliebige Region anzufordern. Wenn der Client Kacheln möchte, kann er seine Anforderungen in einem Kachelmuster stellen, aber der Server kann nicht wissen, was gerade passiert, und wenn der Server die Karte als eigene Kacheln speichert, kann er dem Client nicht mitteilen, was passiert Die Fliesenanordnung ist.

OSGeo hatte zwei Möglichkeiten, um damit umzugehen. Eine Möglichkeit besteht darin, das WMS-Protokoll um zusätzliche Informationen zu erweitern, damit ein kompatibler Client Anforderungen senden kann, die korrekt ausgerichtet sind. Dies wurde als WMS-C bezeichnet.

Das andere ist TMS, ein völlig neues Protokoll, das speziell für Kacheln entwickelt wurde. Insbesondere werden Ganzzahlindizes für die Kacheln verwendet, anstatt dass der Client einen Begrenzungsrahmen anfordern muss, der an einem bestimmten Raster ausgerichtet ist.

Schließlich entschied sich der OGC, der die ursprüngliche WMS-Spezifikation einbrachte, ein Kachelprotokoll zu erstellen, und das Ergebnis war WMTS. Es ist wie bei TMS, das auf Kacheln mit ganzzahligen Indizes ausgerichtet ist, es unterstützt jedoch auch einige zusätzliche Funktionen von WMS, die TMS nicht bietet, wie z. B. Dimensions und GetFeature. Es ist auch viel komplizierter als TMS.

Vorgerenderte Kacheln können mit jedem der drei Protokolle bereitgestellt werden, und es gibt Kachelserver, die alle drei unterstützen. Einige fungieren als Caching-Proxys vor herkömmlichen WMS-Servern (wie bei der gemeinsamen Kopplung von GeoServer und GeoWebCache).

WMS-C und TMS sind ausgereift, aber in den Augen einiger Leute weniger offiziell, da sie keine OGC-Spezifikationen sind. WMS-C ist auch ein bisschen kludge, während TMS einige nützliche, aber periphere Funktionen fehlen. WMTS hat die Unterstützung des OGC und kombiniert das Tile-spezifische Design von TMS mit den zusätzlichen Funktionen von WMS. Es ist jedoch komplex und seine Implementierungen sind in der Regel weniger ausgereift als die der beiden anderen, da es neuer ist.

Neben den zwischengespeicherten / vorgerenderten Kacheln ermöglicht das Kacheln auch ein gleichmäßigeres Schwenken auf einer rutschigen Karte. Auf der anderen Seite kann dies dazu führen, dass Symbole an den Kachelgrenzen abgeschnitten werden oder fehlen und Beschriftungen für Kachelübergreifende Features dupliziert werden. Heatmaps und ähnliche Interpolationen können je nach Implementierung auch über Kacheln hinweg unterbrochen werden. Wenn der Server weiß, dass die Anforderung als Kachel verwendet wird, kann er diese Renderprobleme mithilfe von Techniken wie Dachrinnen oder Metakacheln verringern.

smithkm
quelle
2
Würden Sie 4 Jahre später sagen, dass die Implementierung von WMTS-Diensten mittlerweile ausgereift ist?
jpmc26
4
@ jpmc26 Ich empfehle auf jeden Fall, dass die Leute heutzutage WMTS mit GeoWebCache verwenden, und wir haben die interne Demoseite von GWC (die OpenLayers verwendete) von WMS-C auf WMTS umgestellt. Natürlich wird für manche Menschen der neue Weg immer der neue und nicht vertrauenswürdige Weg sein, egal wie lange es her ist. Für andere ist es der alte und klobige Weg und sollte zugunsten dessen, was MapBox diese Woche tut, abgewiesen werden.
Smithkm