Jaka jest główna różnica między
Usługa kafelkowa map internetowych (WMTS)
i a
Usługa map internetowych (WMS)
Kiedy wybrać jedną z nich?
Jakie są (nie) zalety, wybierając jedno nad drugim?
Przeczytałem wpisy w Wikipedii.
WMTS dostarcza kafelki (najczęściej 256 x 256 pikseli), a WMS dostarcza jeden obraz na żądanie.
Główną zaletą kafelków jest to, że można je wstępnie renderować po stronie serwera i buforować po stronie klienta. Skróci to czas oczekiwania na dane i przepustowość. Z drugiej strony potrzebujesz dużej ilości gigabajtów, jeśli chcesz wstępnie renderować cały świat. Większość będzie zawierać tylko wodę.
Standard WMS pozwala klientowi zażądać dowolnego regionu. Jeśli klient chce kafelków, może wysyłać żądania w formie kafelków, ale serwer nie ma sposobu, aby wiedzieć, co się dzieje, a jeśli serwer przechowuje mapę jako własne kafelki, nie ma możliwości poinformowania klienta o tym, co układ płytek jest.
OSGeo wymyślił dwa sposoby rozwiązania tego problemu. Jednym z nich jest rozszerzenie protokołu WMS o dodatkowe informacje, aby zgodny klient mógł poprawnie wysyłać żądania zgodnie z kolejnością. Zostało to nazwane WMS-C.
Drugi to TMS, całkowicie nowy protokół, który został specjalnie zaprojektowany dla kafelków. W szczególności używa wskaźników całkowitych dla kafelków, zamiast wymagać od klienta żądania ramki ograniczającej, która wyrównuje się z określoną siatką.
W końcu OGC, który wymyślił oryginalną specyfikację WMS, zdecydował się na protokół kafelkowy, czego rezultatem był WMTS. To tak, jakby TMS był zorientowany na kafelki z indeksami liczb całkowitych, ale obsługuje także dodatkowe funkcje WMS, których brakuje w TMS, takie jak Dimensions i GetFeature. Jest to również o wiele bardziej skomplikowane niż TMS.
Wstępnie renderowane kafelki można wyświetlać za pomocą dowolnego z trzech protokołów, a istnieją serwery kafelków, które obsługują wszystkie trzy, niektóre działają jako proxy buforujące przed konwencjonalnymi serwerami WMS (jak w przypadku zwykłego parowania GeoServer i GeoWebCache)
WMS-C i TMS są dojrzałe, ale w niektórych umysłach są mniej oficjalne, ponieważ nie są specyfikacjami OGC. WMS-C jest również trochę kłopotliwy, podczas gdy TMS nie ma kilku użytecznych, ale peryferyjnych funkcji. WMTS ma wsparcie OGC i łączy specyficzny dla kafelków projekt TMS z dodatkowymi funkcjami WMS, ale jest on złożony, a jego implementacje są zwykle mniej dojrzałe niż w przypadku dwóch pozostałych, ponieważ są nowsze.
Oprócz zezwalania na buforowane / wstępnie renderowane kafelki, kafelkowanie pozwala również na płynniejsze przesuwanie na gładkiej mapie. Z drugiej strony może to powodować przycinanie lub brak symboli na granicach kafelków i zduplikowanie etykiet dla elementów obejmujących kafelki. mapy cieplne i podobne interpolacje mogą również przełamać płytki w zależności od implementacji. Jeśli serwer wie, że żądanie jest używane jako kafelek, może złagodzić problemy z renderowaniem przy użyciu technik takich jak rynny lub metapłytki.