¿Diferencia entre WMTS y WMS?

63

¿Cuál es la principal diferencia entre un

Servicio de mosaico de mapas web (WMTS)

y un

Servicio de mapas web (WMS)

¿Cuándo debes elegir uno sobre el otro?

¿Cuáles son las (des) ventajas al elegir una sobre la otra?

He leído las entradas de Wikipedia.

Edward van Raak
fuente

Respuestas:

44

Un WMTS ofrece mosaicos (en su mayoría de 256x256 píxeles), mientras que WMS ofrece una imagen por solicitud.

La principal ventaja de los mosaicos es que se pueden renderizar previamente en el lado del servidor y almacenar en caché en el lado del cliente. Esto reducirá el tiempo de espera para los datos y el ancho de banda. Por otro lado, necesitas muchos Gigabytes si quieres pre-renderizar el mundo entero. La mayor parte contendrá solo agua.

AndreJ
fuente
69

El estándar WMS permite al cliente solicitar una región arbitraria. Si el cliente quiere mosaicos, puede hacer sus solicitudes en un patrón en mosaico, pero el servidor no tiene forma de saber qué es lo que está sucediendo y si el servidor almacena el mapa como mosaicos propios, no tiene forma de decirle al cliente qué La disposición de los azulejos es.

A OSGeo se le ocurrieron dos formas de lidiar con esto. Una es extender el protocolo WMS con información adicional para que un cliente compatible pueda enviar solicitudes que se alineen correctamente. Esto se denominó WMS-C.

El otro es TMS, un protocolo completamente nuevo que está diseñado específicamente para mosaicos. En particular, utiliza índices enteros para los mosaicos en lugar de requerir que el cliente solicite un cuadro delimitador que se alinee con una cuadrícula particular.

Finalmente, el OGC, que ideó la especificación WMS original, decidió hacer un protocolo de mosaico y el resultado fue WMTS. Es como TMS, ya que está orientado a mosaicos con índices enteros, pero también admite algunas características adicionales de WMS de las que TMS carece, como Dimensiones y GetFeature. También es mucho más complicado que TMS.

Los mosaicos preprocesados ​​se pueden servir utilizando cualquiera de los tres protocolos y hay servidores de mosaico que admiten los tres, algunos actuando como servidores proxy de almacenamiento en caché frente a los servidores WMS convencionales (como en el emparejamiento común de GeoServer y GeoWebCache)

WMS-C y TMS son maduros pero menos oficiales en la mente de algunas personas, ya que no son especificaciones OGC. WMS-C también es un poco complicado, mientras que TMS carece de algunas características útiles pero periféricas. WMTS cuenta con el respaldo de OGC y combina el diseño específico de mosaico de TMS con las características adicionales de WMS, pero es complejo y sus implementaciones tienden a ser menos maduras que las de los otros dos, ya que es más reciente.

Además de permitir mosaicos en caché / renderizados previamente, el mosaico también permite una panorámica más uniforme en un mapa resbaladizo. En el lado negativo, puede dar como resultado símbolos recortados o faltantes en los límites de los mosaicos, y etiquetas duplicadas para las funciones de expansión de mosaicos. los mapas de calor y las interpolaciones similares también pueden romperse en mosaicos según la implementación. Si el servidor sabe que la solicitud se está utilizando como un mosaico, puede mitigar esos problemas de representación utilizando técnicas como canales o meta-mosaicos.

smithkm
fuente
2
4 años después, ¿diría que las implementaciones del servicio WMTS son tan maduras ahora?
jpmc26
44
@ jpmc26 Ciertamente recomiendo que la gente use WMTS con GeoWebCache en estos días y cambiamos la página de demostración interna de GWC (que usaba OpenLayers) de WMS-C a WMTS. Por supuesto, para algunas personas, la nueva forma siempre será la nueva y no confiable, sin importar cuánto tiempo haya sido. Para otros, de la manera antigua y torpe, debería descartarse a favor de lo que sea que haga MapBox esta semana.
smithkm