lunes, 18 de septiembre de 2017

Mapas TMS en QGIS: OpenTopoMap.

Los mapas online son una forma de acceder a diversa cartografía muy cotidiana en nuestros días. A través de servicios alojados en servidores es posible visualizar y/o descargar cualquier mapa que alguien haya tenido a bien publicar. Los servicios de visualización WMS/WMTS o de descarga WFS son ya conocidos y hemos tratado sobre ellos en muchos artículos, además de ser la base para obtener mapas y datos de forma remota, de forma que es habitual que se encuentren integrados en los principales softwares para el manejo de información geográfica.
Los mapas TMS (Tile Map Service) que hoy nos ocupan son otra variante de estos servicios que permiten el acceso online a imágenes remotas. Por decirlo de forma rápida, un servidor que aloja teselas o mosaicos (tiles) de un mapa puede ser llamado por el usuario en forma de peticiones a través de las aplicaciones apropiadas para ser visualizado directamente en su dispositivo.
En este artículo vamos a usar unos de esos servidores (OpenTopoMap) y hacerle nuestra petición de imágenes a través de nuestra aplicación (QGIS). En las últimas versiones del programa (a partir de la 2.18) está tarea se ha facilitado enormemente pues se ha implementado de manera nativa la posibilidad de leer mapas TMS.

En la propia web de OpenTopoMap encontramos lo primero que necesitamos:
OpenTopoMap nos ofrece la dirección URL a través de la que podemos acceder a los mosaicos de  sus imágenes:

{a|b|c}.tile.opentopomap.org/{z}/{x}/{y}.png
  • Las tres letras (a b c) corresponden a los tres servidores disponibles para acceder a las teselas, de forma que al hacer nuestra petición debemos escoger uno de ellos.
  • La letra Z corresponde al zoom o escala al que vamos a hacer la petición, ya que todos estos mapas online normalmente contienen varios niveles en los que las imágenes son diferentes y van variando según el nivel de detalle que se requiera.
  • Y las letras X e Y se corresponden a la longitud y latitud de la tesela individual según la numeración que haya establecido el propio servidor.
Tras esta explicación muy básica podemos probar con la siguiente petición:
https://a.tile.opentopomap.org/14/8695/5583.png
Hemos elegido el servidor a, el nivel de zoom 14, y la tesela de coordenadas x=8695 e y=5583. Si introducimos esta dirección en nuestro navegador de internet obtenemos el mosaico:
El navegador nos devuelve una imagen en formato png, normalmente de 256x256 pixels de tamaño, de la zona correspondiente a las coordenadas x-y introducidas y con la escala correspondiente al nivel de zoom elegido.
Por tanto, un simple cambio añadiendo un número más a la cifra de la X nos devolverá la tesela contigua:

Baste esta breve y ruda explicación para tener un concepto básico del funcionamiento de los Tile Map Service y vamos ahora con la segunda parte del artículo: cargar mapas TMS en QGIS. El programa tiene el acceso a la herramienta en el panel del explorador (cuadrado verde en la imagen):
En la columna izquierda tenemos el panel de capas o el panel del explorador, dependiendo la pestaña activa (en rojo). Si no os aparece podéis hacer click derecho sobre la barra de botones superior y se os abrirá el selector de paneles para activarlo (en amarillo).
Evidentemente las peticiones individuales de mosaicos que hemos visto más arriba no tienen ninguna utilidad a la hora de querer visualizar amplias vistas de mapas, ni tendrían la agilidad necesaria para moverse ni trabajar. Por ello la dirección que se utiliza para configurar el servicio es la siguiente:
http://c.tile.opentopomap.org/{z}/{x}/{y}.png
Sin peticiones individuales, sino con la fórmula genérica que nos permita acceder de manera automática a todos los mosaicos del mapa. Recordad que tenemos tres servidores disponibles (a b c) que podéis ir probando en caso de que alguno de ellos no os diera buen resultado.
Hacemos click derecho sobre Tile Server (XYZ) y pulsamos New Connection... Introducimos la dirección en la nueva ventana y le damos un nombre al mapa en la siguiente. Aceptamos.
La conexión al mapa queda hecha y disponible en el árbol de conexiones de nuestro panel del explorador. Click derecho para opciones y con Añadir capa el mapa se carga en pantalla y se añade a nuestro panel de capas.

Nota: el mapa se nos ha mostrado un tanto errático y remolón refrescando la caché de imágenes cuando nos desplazamos o hacemos zoom, de forma que deja en blanco áreas que ha mostrado en una vista anterior y nos obliga a volver a mover el mapa para reconectar. Me ha pasado con los tres servidores por lo que deduzco que es cosa del propio mapa, ya que con otras cartografías no nos pasa, por lo que no parece problema de QGIS.

Aunque las "principales" cartografías ya están implementadas en diversos complementos de QGIS como QuickMapServices u OpenLayers, ahí os dejo unas cuantas direcciones de ejemplo para que podáis probar y añadirlas en el visor nativo de QGIS (testadas y funcionando). Saludos.
bergfex_osm: http://maps.bergfex.at/osm/standard/{z}/{x}/{y}.jpg

ESRI ArcGis standard
https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}

Google Terrain
https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z}

opnvkarte: http://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png

Strava cycling: http://globalheat.strava.com/tiles/cycling/color1/{z}/{x}/{y}.png  
sobre Google SAT: http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}

No hay comentarios:

Publicar un comentario