martes, 19 de junio de 2018

GPX con URL integrada.

A partir de un excelente post del forero mitxelin en Mendiak, nos pareció buena idea darle una vuelta a este tema de los archivos GPX con URL integrada. ¿Qué es esto?

Como muchos sabréis los archivos GPX son uno de los formatos más populares para contener datos GPS y transferirlos entre aplicaciones. Su contenido puede constar de puntos (waypoints), recorridos (tracks) y rutas. Los GPX están formados por un esquema de texto XML fácilmente editable en el que se contienen los distintos campos de datos.

Si a estos archivos GPX les añadimos un campo conteniendo una URL (esto es, una dirección de internet), tendremos la posibilidad de enriquecer nuestro elemento con la información adjunta que pueda proporcionarnos esa conexión (una imagen, una ficha, una descripción, una página web, etc...).

Partiendo de uno de los archivos de ejemplo que el mismo mitxelin citaba (una colección de waypoints de Albergues), vamos a mostrar su estructura de texto y cómo se comportan estos GPX con URL's integradas en los programas que manejamos habitualmente.

Si abrimos nuestro GPX en cualquier software con capacidad de mostrarnos su contenido en formato tabla vemos con toda claridad los campos de datos diferenciados:
Archivo GPX conteniendo waypoints abierto en QGIS y mostrando sus campos de datos, entre ellos el que contiene las URL's
Un simple editor de texto como el Bloc de notas de Windows nos sirve también para visualizar en texto simple su contenido:
Archivo de waypoints abierto en Bloc de notas. Destacadas en azul las líneas de código correspondientes al primero de los waypoints, y destacada en verde la línea de código que integra el enlace URL.
¿Cómo nos permiten los softwares habituales visualizar o interactuar con esta URL integrada?
La información con la que nos enlace la URL de un track o waypoint puede ser muy útil a la hora de enriquecer la información del GPX. Pensemos por ejemplo en una foto de un vértice geodésico o un cruce de caminos, en un enlace a la descripción de una ruta, o a una web del propio Albergue. Disponer de estas posibilidades integradas en el mismo conjunto GPX que estamos utilizando para preparar nuestra ruta nunca está de más.
Dependiendo del software empleado esta posibilidad se encuentra más o menos a mano (o no se encuentra). Repasamos aquellos que tenemos posibilidad de mostraros:

GOOGLE EARTH Pro 7.3.1
Una vez cargado el archivo GPX , simplemente clickando en el waypoint se nos muestra el enlace URL en ventana popup

Pinchando sobre él se nos abre navegador integrado en Google Earh. Desde aquí tenemos la posibilidad de volver a Earth y/o abrir ventana externa con el navegador predeterminado.

BASECAMP 4.6.2
Algo más escondido tenemos el acceso a la URL desde BaseCamp. Seleccionando el waypoint en cuestión, abriremos su ventana de propiedades (doble-click nos vale), y en la segunda pestaña -Notas- encontramos el icono del enlace URL. Doble click sobre él (o seleccionar y pulsar en Abrir) para que el navegador predeterminado nos muestre el contenido.

Desde la misma ventana BaseCamp nos permite fácilmente añadir estos vínculos web o vínculos a archivos en local.

COMPEGPS 7.6.6
Cargados los waypoints podemos abrir sus propiedades con click derecho, en cuya ventana se nos muestra el enlace web sobre el que deberemos pulsar para abrir la ventana externa del navegador predeterminado.

O más rápido aún, hacemos doble click sobre el waypoint con lo que se nos abre ventana de navegación integrada en el mismo CompeGPS y perfectamente funcional.

QGIS 3.0
Al igual que otros programas, con la herramienta Info pinchamos sobre el waypoint y se nos abre ventana de propiedades donde figura claramente el enlace. Click sobre él para que se abra ventana con el navegador predeterminado.

La potencia de QGIS nos permite añadir fácilmente multitud de acciones predeterminadas a la herramienta Info agilizando el proceso a un simple click (ej: abrir en navegador, buscar en Google por campo, etc...), así como configurar una conexión estable a los datos generando una base espacial. Lo veremos en un próximo artículo.

GPSMapEdit 2.1
Accediendo a las propiedades del waypoint (click derecho sobre él) tenemos el botón para abrir el enlace en ventana externa del navegador predeterminado.

MAPSOURCE 6.15.7
Para los valientes u obligados que seguís usando MapSource, también podéis utilizar esta propiedad de los waypoints. Como en otros programas el enlace se encuentra accediendo a las propiedades del punto (doble click sobre el mismo o click derecho en la lista de waypoints).

GLOBAL MAPPER 19
De nuevo con la herramienta Info pinchamos en el waypoint. El programa detecta que el punto incluye un enlace URL y nos ofrece varias opciones. Seleccionamos abrir el enlace en un navegador.
Podemos marcar la casilla correspondiente -círculo rojo- para que la opción abrir enlace en navegador
 se ejecute automáticamente para cada click hasta que cambiemos de herramienta.
SASPLANET
SASPlanet parece que no es capaz de interpretar correctamente esta estructura GPX estándar, mostrándonos una información parcial y desordenada de su contenido, a pesar de que es capaz de incluir URL's en sus waypoints como vimos en el vídeo de este artículo (probablemente sea por que utiliza códigos html diferentes como el href= que no utiliza el xml de los GPX).

ORUXMAPS
Esta fantástica aplicación para dispositivos móviles tampoco nos ofrece acceso a la URL integrada, ofreciendo la información más estándar y obviando el enlace con un comportamiento muy similar al de SASPlanet.

Este es el resumen de cómo tratan los diferentes programas los archivos GPX que contienen un enlace URL entre sus campos de datos. Las ventajas de esta información extra pueden sernos de mucha utilidad (y comodidad) a la hora de preparar nuestras rutas o simplemente como mejora de la biblioteca de información que ya puede ser un waypoint por si mismo (nombre, coordenadas, altitud, descripción, etc...). Y que como vemos nunca está de más pues la mayoría de los programas pueden usarla de una u otra forma.
Cabe mencionar por último que el formato GPX no es un estándar infalible, y con cierta frecuencia se producen incompatibilidades para un mismo archivo a la hora de abrirlo en diferentes programas. Saludos.

lunes, 4 de junio de 2018

Añadir símbolos SVG a QGIS.

Como todos los aficionados a la cartografía sabemos, la simbología que se aplique a los vectores que componen un mapa determina en gran medida su atractivo y hacen su lectura y entendimiento mucho más sencillo e intuitivo. Esto, que es común para todos los elementos, se hace especialmente notorio en el caso de los marcadores de vectores tipo punto, que son aquellos que configuran los genéricamente llamados puntos de interés (POI's) y representan los elementos puntuales del terreno.
Iconos representando una cima, una gasolinera, un camping o un aeródromo son imprescindibles en cualquier mapa moderno que aspire a dar una visión nítida y de fácil interpretación del territorio. Es en estos casos cuando una simple figura geométrica se queda muy corta para ese objetivo y necesitamos de marcadores más elaborados.
Galería de marcadores simples en QGIS, insuficientes para representar ciertos elementos.
Es aquí donde entran en juego los marcadores SVG (Scalable Vector Graphics). Este formato, como vectorial que es, nos ofrece la indispensable propiedad de poder ser redimensionado al tamaño que necesitemos sin pérdida de calidad (lo que si sucede en formatos de imagen como el PNG, habitualmente utilizados como marcadores por su transparencia). Y, además, tienen la posibilidad de poder editar su estructura modificando anchuras y colores de contorno y contenido. 
QGIS cuenta también por defecto con una buena colección de marcadores SVG.
Símbolo SVG de QGIS de tamaño 8x8 mm, con relleno en verde y contorno en negro de anchura 0,20 mm.
Hecha esta brevísima introducción, hoy vamos a mostrar cómo podemos ampliar la galería de marcadores SVG de nuestro QGIS.
- Lo primero que necesitamos son los nuevos símbolos SVG a añadir. Aunque siempre está la posibilidad de crear nosotros mismos el SVG con programas como Inkscape, para lo que hoy nos ocupa tiraremos por el camino sencillo: librerías de símbolos ya preparadas. Son muchas las que podemos encontrar por la web; nosotros para nuestro artículo vamos a usar la colección de símbolos open source MAKI, facilitada por la gente de mapbox.
Se trata -a fecha de este artículo- de un compendio de 146 símbolos, ofrecidos en dos tamaños (11x11 y 15x15 pixels), que representan algunas de los elementos más clásicos presentes en un mapa. La web nos ofrece además la posibilidad de editar ciertos parámetros del icono o seleccionar sólo aquellos que queremos antes de la descarga. Nosotros descargamos el lote completo (zip de 1,44 mb).
Contenido del paquete MAKI con la carpeta icons que es la que contiene los marcadores SVG.
- Lo segundo que necesitamos saber es en qué lugar de nuestro PC debemos colocar los archivos SVG para que QGIS tenga acceso a ellos. No nos complicamos lo más mínimo y desde la misma ventana de simbología de QGIS obtenemos la ruta a los mismos.
Es fácil obtener la ruta al destino de los símbolos SVG desde la misma ventana de simbología, teniendo seleccionado SVG marker como tipo de símbolo. Obviamente dependerá del lugar donde se haya instalado QGIS, en mi ejemplo es C:\Program Files\QGIS 3.0\apps\qgis\svg
- Una vez tenemos los nuevos SVG y la ruta donde colocarlos, simplemente extraemos la carpeta icons del ZIP a la carpeta destino (Ej: C:\Program Files\QGIS 3.0\apps\qgis\svg) y la renombramos con un nombre identificativo para más comodidad.
Extraemos la carpeta al directorio destino y la renombramos como maki para mayor comodidad.
Ya podemos abrir QGIS y comprobar que los nuevos símbolos están disponibles como SVG marker bajo el directorio especificado:

APÉNDICE
Seguramente muchos os hayáis dado cuenta de un pequeño detalle: mientras que muchos de los símbolos SVG por defecto de QGIS pueden editarse (color, grosor del trazo, etc...), los símbolos de MAKI que acabamos de añadir a la librería no nos lo permiten, apareciendo bloqueadas dichas opciones.
Los colores de relleno y de marca, así como su anchura, no están disponibles para modificar.
Investigando un poco y tras leer ciertas webs, el motivo se encuentra en la propia estructura del archivo SVG compuesta de texto xml. Así tenemos que el símbolo airfield-15.svg del ejemplo de arriba está formado por el siguiente código (visto en el mismo bloc de notas):

Y cotejando con uno de los símbolos editables disponibles por defecto en QGIS, enseguida encontramos la línea de código que permite que el SVG sea modificable:
Código destacado en amarillo que nos permite convertir el SVG en editable en colores y anchuras de marca. 
Procedimos pues a modificar el texto xml del símbolo airfield-15.svg de MAKI añadiéndole el código en cuestión:

Guardamos cambios y abrimos QGIS para comprobar que el símbolo SVG modificado nos permite ahora editar sus colores y marcas.
El símbolo ha pasado del negro de sus compañeros al gris (lo que ya nos indica que alguna modificación ha sufrido). Las pestañas de color de relleno, color de marca y anchura de marca se encuentran ahora activas, pudiendo editar el símbolo a nuestro gusto.
Por último reseñar que el símbolo puede estar compuesto por varios elementos, con lo que el texto xml estará compuesto por diferentes "paths", y habrá que añadir el correspondiente código tras cada path o sólo haremos editable parte del símbolo. Se ve claramente con el ejemplo del símbolo bakery-15.svg
Este símbolo SVG contiene dos path: el primero corresponde a los tres vectores izquierdos y el segundo path a los dos vectores derechos. Hemos añadido el código -en amarillo- tras cada uno de los paths -destacados en verde-.
Esto es todo por hoy. Obviamente puede resultar engorroso modificar según lo expuesto toda una librería de símbolos, pero para casos que necesitemos imperiosamente modificar alguno de los marcadores creemos que es una solución aceptable. Saludos.

PD1: Otra buena colección de iconos (172) la tenéis aquí.
PD2: dado que la estructura xml del SVG puede ser diferente al estar creado por distintos softwares (Inkscape, Illustrator, etc...), es posible que el añadido del citado código no funcione igual en todos los casos, y haya que añadirlo en más o menos "path's" y/o "polygon`s".