miércoles, 10 de junio de 2015

SASPlanet: transparencia y fondo de capas.

Hoy vamos a explicar cómo cambiar la transparencia y el color de fondo de los mapas de SASPlanet. Seguramente es una cuestión menor y que apenas utilizaremos, pero en determinados casos nos puede resultar de utilidad y no está de más saber cómo hacerlo, pues es tan sencillo que no merece la pena estar rompiéndose la cabeza si alguna vez lo necesitáramos.
Recuerdo brevemente que cada mapa de SASPlanet tiene su base en un archivo de configuración del mismo llamado params.txt y que está alojado en cada carpeta de cada mapa. En el texto de este archivo params.txt encontramos un bloque de texto continuo y sin espacios como este:
DefURLBase=http://www.ign.es/wms-inspire/pnoa-ma?TRANSPARENT=true&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&STYLES=default&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fpng&LAYERS=OI.OrthoimageCoverage&BGCOLOR=0xFFFFFF&SRS=EPSG%3A4326&BBOX=
En él se contienen varios parámetros básicos para que nuestro mapa pueda ser representado por SASPlanet. Los dos que nos interesan a efectos de este artículo son el parámetro TRANSPARENT y el parámetro BGCOLOR. El primero alude a la transparencia del mapa: true significa que el mapa será transparente y false significaría que el mapa sería opaco. Algunas veces este parámetro está definido por el propio servicio wms y no admite el cambio; otras veces es sencillamente absurdo pues el único sentido del mapa es ser opaco (una ortofoto, por ejemplo). Por defecto la mayoría vienen configurados con la posibilidad de ser transparentes, pues es fundamental para el juego de capas a la hora de cargar varias de diferentes servicio wms. Por su parte el parámetro BGCOLOR (background color o color de fondo) define el color de fondo del mapa, en base a un código hexadecimal compuesto por una combinación de seis dígitos y letras (las seis FFFFFF que vemos en el texto).
En realidad esta modificación puede ser útil sobre todo para las capas, pues los mapas por lo general deben ser opacos para mostrar todo su contenido y están concebidos como capas de fondo. Y, aunque en nuestro lote SASPlanet las capas las solemos configurar con la transparencia activada, pues lo más lógico es superponerlas sobre alguna ortofoto u otro mapa, en determinados casos nos puede interesar modificar esto. Veamos un ejemplo: tenemos abierto en SASPlanet el mapa del PNOA sobre la zona del monasterio de Arrate, y cargada también la capa Altimetría de Euskadi.
En principio es una combinación mapa+capa lógica, útil y coherente. Pero, ¿y si quisiéramos ver esas curvas de nivel sobre un fondo opaco sin tener que convertir nuestra capa en mapa ni hacer cambios de configuración complicados en nuestro archivo params.txt? La lógica nos dice que hay que cambiar el parámetro TRANSPARENT de la capa altimetría de true a false. Lo hacemos desde dentro mismo de SASPlanet:
Entramos en las propiedades de la capa y dentro del campo URL (es modificable) sustituimos la expresión true por la expresión false.
Obviamente el cambio de fondo no se produce en el acto, pues la cache almacenada con las imágenes de la capa impiden ver la nueva configuración. Para actualizar esto y borrar las imágenes activas de la cache de la capa tenemos que borrar su carpeta cache, que como vemos en las propiedades de capa es la carpeta EUSKADIAltimetria (en el directorio "cache" dentro de la carpeta del programa).
Localizamos la carpeta cache de la capa y la eliminamos para que las imágenes antiguas desaparezcan.
Tras esto sólo nos resta movernos de nuevo por el mapa, o hacer zoom, y la nueva cache de capa con fondo opaco comienza a cargarse.
El fondo es ahora opaco y de color blanco. Esto es debido a que el código de color hexadecimal de nuestro parámetro BGCOLOR es FFFFFF que corresponde al color blanco.
Si quisiéramos cambiar el color de fondo por otro a nuestro gusto, simplemente volveríamos a las propiedades de capa y sustituiríamos FFFFFF por el correspondiente. En esta página de Wikipedia tenemos un listado de los colores con su correspondiente código hexadecimal. En esta otra web podemos elegir el color que queramos y se nos genera el código del mismo.
Elegido el color que nos gusta, copiamos su código de seis caracteres y lo sustituimos en las propiedades de capa. Aplicamos los cambios y de nuevo tendremos que borrar la carpeta cache de la capa si queremos que la zona de interés se actualice (si sólo queréis probar, con moveros por el mapa a una zona que no tenga las imágenes en cache es suficiente).
Como veis es una sencilla forma de cambiar temporalmente la transparencia y el color de fondo de una capa que nos interese. Lo que ya no he adivinado es si ese código de color puede contener algún parámetro que gradúe la transparencia del mismo, aunque creo que no se puede pero no me hagáis mucho caso. Deciros también que los cambios hechos en las propiedades da la capa permanecen aunque cerréis y volváis a abrir SASPlanet. Si queremos revertirlos tenemos dos opciones: o volver a escribir los parámetros por defecto en transparencia y color, o cerrar el programa, borrar el archivo Maps.ini dentro del directorio "Maps" de SASPlanet y volver a abrir el programa (con lo que SASPlanet vuelve a leer los archivos params.txt de cada mapa, que no han sido tocados).
Otro ejemplo: por defecto la topografía urbana de esta capa está transparente (parte inferior de la imagen), pero nos puede interesar extraerla con un fondo opaco del color que queramos (parte superior de la imagen)
Eso es todo, ¿quién sabe cuando necesitaremos extraer una imagen de una de nuestras capas transparentes pero nos gustaría que tuviera el color de fondo que quisiéramos? Quizá nunca, o quizá la imaginación de cada usuario haga el resto. Saludos!!

No hay comentarios :

Publicar un comentario