Diferença entre WMTS e WMS?

63

Qual é a principal diferença entre um

Serviço de mosaico de mapas da Web (WMTS)

e um

Serviço de Mapa da Web (WMS)

Quando você deve escolher um sobre o outro?

Quais são as (des) vantagens escolhendo um sobre o outro?

Eu li as entradas da Wikipedia.

Edward van Raak
fonte

Respostas:

44

Um WMTS fornece blocos (principalmente tamanho de 256x256 pixels), enquanto o WMS fornece uma imagem por solicitação.

A principal vantagem dos blocos é que eles podem ser pré-renderizados no lado do servidor e armazenados em cache no lado do cliente. Isso reduzirá o tempo de espera dos dados e da largura de banda. Por outro lado, você precisa de muitos Gigabytes para pré-renderizar o mundo inteiro. A maior parte conterá apenas água.

AndreJ
fonte
69

O padrão WMS permite que o cliente solicite uma região arbitrária. Se o cliente deseja blocos, ele pode fazer seus pedidos em um padrão lado a lado, mas o servidor não tem como saber o que está acontecendo e se o servidor armazena o mapa como blocos próprios, não há como informar ao cliente o que o arranjo de azulejos é.

A OSGeo apresentou duas maneiras de lidar com isso. Uma é estender o protocolo WMS com informações extras para que um cliente compatível possa enviar solicitações alinhadas corretamente. Isso foi denominado WMS-C.

O outro é o TMS, um protocolo totalmente novo, projetado especificamente para blocos. Em particular, ele usa índices inteiros para os blocos, em vez de exigir que o cliente solicite uma caixa delimitadora que se alinhe a uma grade específica.

Eventualmente, o OGC, que apresentou a especificação original do WMS, decidiu criar um protocolo de bloco e o resultado foi WMTS. É como o TMS, orientado a blocos com índices inteiros, mas também suporta alguns recursos adicionais do WMS que o TMS carece, como Dimensions e GetFeature. Também é muito mais complicado que o TMS.

Os blocos pré-renderizados podem ser servidos usando qualquer um dos três protocolos e existem servidores de bloco que suportam os três, alguns atuando como proxies de cache na frente dos servidores WMS convencionais (como no pareamento comum do GeoServer e GeoWebCache)

O WMS-C e o TMS são maduros, mas menos oficiais na mente de algumas pessoas, pois não são especificações do OGC. O WMS-C também é um pouco complicado, enquanto o TMS carece de alguns recursos úteis, mas periféricos. O WMTS tem o apoio do OGC e combina o design específico do bloco do TMS com os recursos extras do WMS, mas é complexo e suas implementações tendem a ser menos maduras que as dos outros dois, pois são mais recentes.

Além de permitir blocos em cache / pré-renderizados, o mosaico também permite um deslocamento mais suave em um mapa escorregadio. No lado inferior, isso pode resultar em símbolos cortados ou ausentes nos limites do bloco e rótulos duplicados para os recursos de extensão do bloco. mapas de calor e interpolações semelhantes também podem quebrar entre blocos, dependendo da implementação. Se o servidor souber que a solicitação está sendo usada como bloco, poderá mitigar esses problemas de renderização usando técnicas como calhas ou meta-blocos.

smithkm
fonte
2
4 anos depois, você diria que as implementações de serviços WMTS estão tão maduras agora?
jpmc26
4
@ jpmc26 Eu certamente recomendo que as pessoas usem o WMTS com o GeoWebCache hoje em dia e trocamos a página de demonstração interna do GWC (que usava OpenLayers) de WMS-C para WMTS. É claro que, para algumas pessoas, o novo caminho sempre será o novo e não confiável, não importa quanto tempo tenha sido. Para outros, é a maneira antiga e desajeitada e deve ser descartada em favor do que quer que o MapBox esteja fazendo esta semana.
smithkm