¿Qué es WMTS? Un buen ejemplo de servicio WMTS es OpenStreetMap. Consiste en una dirección a la que los programas cliente pueden solicitar imágenes geoetiquetadas. Cuando cargas OSM en QGis, el programa se conecta al servidor OSM y solicita las imágenes necesarias para llenar tu ventana de mapa.
Existen dos tipos de servicios de imágenes geolocalizadas: WMS y WMTS.
Web Map Service (WMS): es un estándar de servicio web OGC que permite producir mapas dinámicamente a partir de imágenes georreferenciadas; cada vez que un cliente lo solicita, se llama al servidor para que genere una imagen correspondiente a la ventana solicitada,
Web Map Tiled Service (WMTS): es una norma que describe cómo distribuir datos cartográficos en forma de mosaicos predefinidos. El cliente especifica un nivel de zoom estándar y se envían los mosaicos disponibles para llenar la ventana solicitada. La principal ventaja de WMTS sobre WMS es que ofrece un mejor rendimiento en la entrega de datos cartográficos, ya que los mosaicos se almacenan en cache durante la primera generación.
Cada vez hay más servicios WMTS a disposición del público en general. Si OpenStreetMap es uno de los más utilizados porque está disponible por defecto en la interfaz de QGis, si cargas el plugin de servicios Quick Map, tendrás una larga lista de servicios disponibles directamente en QGis. En cuanto a Felt, sólo tendrás por defecto Mapbox y Stamen.
Pero ya sea Qgis o Felt, puede integrar el servicio WMTS de tu elección, siempre que respetes un determinado formato de comunicación denominado {xyz}.
El formato {XYZ}
Los servicios xyz siguen un estándar sobre cómo deben solicitarse los mosaicos basado en 2 conceptos: niveles de zoom y coordenadas de los mosaicos.
Los niveles de zoom definen la escala del mapa. En el nivel de zoom 0, una proyección Mercator completa de la Tierra está contenida en un mosaico de 256px por 256px:
A cada nivel de zoom adicional, el número de mosaicos se multiplica por cuatro y la resolución espacial (metros terrestres por píxel) de cada mosaico se duplica aproximadamente.
El nivel de zoom más alto (Z) depende de la aplicación; en el nivel de zoom 15 hay más de mil millones de mosaicos, cada uno con una resolución espacial de 4,77 metros por píxel. Este es un ejemplo de un mosaico Z15 de Open Street Map.
En cualquier nivel de zoom, un mosaico específico puede identificarse mediante coordenadas cartesianas (XY) con 0,0 empezando en la parte superior izquierda del mapa.
Formato de la solicitud
La estructura de una solicitud de mosaico {XYZ} típica es la siguiente
url/nivel-zoom/coordenada-x/coordenada-y.png
Y he aquí un ejemplo que seguiremos en este artículo
{z}/{x}/{y}.png
Esta es la línea que hay que introducir en QGis o Felt para añadir el servicio EDMOnet WMTS.
{Z}, el nivel de zoom, {x} y {y} las coordenadas de las teselas solicitadas, son variables que el software solicitante (QGis o Felt) rellenará en función del mapa visualizado. Todo lo demás (tiles.emodnet-bathymetry.eu/2020/baselayer/web_mercator/) es la URL para acceder a los mosaicos.
¿Dónde puedo encontrar la URL de un servidor de mosaicos?
Para algunos servidores, es fácil. En el caso de OpenStreetMap, en la página encontrarás las URL que debes utilizar para los distintos mapas disponibles
Ten cuidado de quitar el signo $ delante de x,y y z cuando introduzcas la url en un programa.
Pero, por desgracia, a menudo es un poco más complicado. Tomemos la batimetría mundial de EDMOnet. Cuando accedes a la página con los productos WMTS obtienes una lista:
Tiene un enlace URL correspondiente al GetCapabilities del servidor. Esta página XML es obligatoria para cualquier servidor WMTS, y enumera todas las características del servicio así como la(s) URL(s) disponible(s) para las teselas. Desafortunadamente, está en XML y no es un lenguaje común. Tendremos que desencriptarlo para encontrar nuestra URL deseada.
Descifrando el Getcapabilities de un servidor WMTS
Empezamos copiando y pegando la url de getcapabilities en nuestro navegador. Para batimetría es
https://tiles.emodnet-bathymetry.eu/wmts/1.0.0/WMTSCapabilities.xml
A continuación, obtenemos la página XML solicitada
La página tiene cientos de líneas. Pero fijémonos en lo que nos interesa: busquemos el texto ResourceURL format en la página
Ahí tienes el modelo de url a utilizar:
tiles.emodnet-bathymetry.eu/2020/baselayer/{TileMatrixSet}/{TileMatrix}/{TileCol}/{TileRow}.png
En cuanto a {TileMatrix}/{TileCol}/{TileRow}, no hay problema, basta con sustituirlos por {z}/{x}/{y}. Pero hay otra variable, {TileMatrixSet}, que tendrás que rellenar explícitamente en tu URL. Para saber cuáles son los valores posibles, en la ventana de búsqueda de texto de la página, introduce <TileMatrixSet> y busca la ocurrencia anterior (^). Encontrarás los diferentes valores que puede tomar esta variable:
Estos son los diferentes sistemas de proyección disponibles. Aparte de inspire_quad que es una invención de la UE, los otros sistemas son todos manejados por Qis y Felt. Puedes elegir cualquiera de ellos, pero si quieres quedarte con el clásico, web_mercator te irá bien. Así que tenemos nuestra URL configurada de la siguiente manera:
tiles.emodnet-bathymetry.eu/2020/baselayer/web_mercator/{z}/{x}/{y}.png
Si encuentras otras variables en la plantilla de URL, sigue el mismo procedimiento para encontrar los valores aceptados. Todas las variables que no sean {z}/{x}/{y} deben sustituirse por un valor de tu elección.
Añadir el servidor de teselas en QGis
En el panel Explorador haz clic con el botón derecho en XYZ Tiles -> Nueva conexión
Dale un nombre a tu conexión y en Detalles de la conexión introduce la url
Tendrás EMODNet en la lista de servidores de teselas y podrás cargarlo directamente en tu proyecto.
Añadir el servidor de teselas en Felt
En Felt puedes cargar el servidor de teselas como fondo.
Haga clic en el botón Cambiar fondo (Change background) situado en la parte inferior del mapa y, a continuación, en el signo + (Añadir fondo)
Selecciona la pestaña Desde URL, dá un nombre (Títle) a tu conexión e introduce la URL en el campo URL de teselas
En cuanto introduzcas la URL, deberías ver un extracto de la capa en el cuadro Vista previa. Si no es así, tu URL contiene un error.
Haz clic en Añadir fondo y tendrás el nuevo fondo de mapa en tu mapa.