SASPlanet: crear fuentes WMS.

SASPlanet es un magnífico software para la visualización y creación de mapas, pero su funcionamiento depende totalmente de servidores wms que le surten de contenido. Por eso es importante poder configurar las fuentes wms que nos interesen, y aprovechando su filosofía opensource, aquí va mi explicación de la forma en que modifico las carpetas .zmp de SASPlanet para añadir nuevas fuentes de mapas wms. Mi proceso es muy artesanal y fruto de la observación y cotejo de los archivos de texto necesarios; ni maldita idea que tengo de programación ni de nada que se le parezca, pero a base de prueba-error (más bien prueba-error-error-error) al final he conseguido más o menos un esquema que parece funcionar en bastantes casos. Cuantos más conozcamos algún proceso de elaboración que funcione, más mapas podemos tener disponibles en beneficio de todos.

Las carpetas .zmp contenedoras tienen tres archivos básicos: una pequeña imagen, un archivo GetUrlScript.txt y un archivo params.txt.

- El archivo de imagen corresponde con el pequeño logotipo que se muestra junto al nombre del mapa en la lista de mapas desplegable. Parece ser que su resolución máxima debe ser 24x24 pixels y debe estar en formato .bmp (a mi alguno me ha funcionado a resolución 90x60, pero tampoco es algo fundamental pues en el menú no hay sitio para más). En cuanto a su nombre también parece que "24" es el nombre por defecto (he probado con otros como "topo10" y la imagen deja de verse).
- El archivo GetUrlScript.txt ni tocarlo. No se muy bien ni para qué vale ni lo que hace; yo siempre he usado el mismo en todas las carpetas y parece que funciona, así que copiarlo, pegarlo y a callar ;-p
- El verdadero meollo está en el archivo params.txt. En él se contienen todos los parámetros a modificar. Pongo captura de su contenido estándar con las cosas a modificar seleccionadas y explico cada una de ellas. IMPORTANTE: el texto seleccionado es EXACTAMENTE el texto a sustituir. Quiero decir que una simple coma, o punto o caracter de más o de menos puede hacer que el archivo no funcione.

- pnum: digamos que es un número ordinario de mapa, como un orden en la lista de todos los mapas que tengamos. Ni siquiera se si habría conflicto si tuviera un número ya asignado a otro txt de otro mapa... Simplemente me limito a poner el siguiente número del último mapa que he creado. Puede dejarse en blanco.
- GUID: número único e intransferible que identifica a ese mapa. Aquí si he comprobado que si se repite al arrancar SASPlanet nos canta que tales mapas X e Y tienen el mismo número GUID y no los muestra. Resulta que hay webs que generan directamente estos códigos GUID, así que yo uso esta (http://www.guidgen.com/) y le doy a generar nuevo GUID cada vez que creo una nueva fuente. Copiamos el GUID generado y lo pegamos en su espacio entre los corchetes.
- name: es el nombre que el mapa tendrá en nuestro menú desplegable de mapas y por el que lo identificaremos; se pone el mismo en las tres líneas, pues no son mas que el nombre del mapa en cada uno de los tres idiomas del programa (ruso, inglés y ucraniano).
- ParentSubMenu: nombre del menú superior que contiene varios mapas; digamos que CATALUNYA es la carpeta y TOPO 10k uno de los archivos que contiene. Si queremos que el archivo de mapa quede suelto sin estar contenido en un submenú simplemente dejamos estas tres líneas en blanco.
- asLayer: define si el archivo va a ser un mapa o una capa. Si queremos que esté en la lista de mapas ponemos 0; si queremos que esté en la lista de capas (Layers) ponemos un 1. Depende de las características del mapa nos interesará más que sea mapa o capa a superponer.
- DefURLBase: esta es la dirección url principal del servicio wms del que vamos a descargar los datos. La mayoría de los proveedores de mapas la facilitan de forma pública y notoria.
- STYLES: la capa que queramos descargar desde el servidor puede estar hecha con varios de estos styles; normalmente es el estilo por defecto (default) pero hay que mirar bien por si tiene un estilo personalizado poner aquí lo que corresponda.
- image: el formato de imagen en el que el servidor proporciona los datos. Jpeg, gif y png son los más extendidos (png es el más extendido por la calidad/tamaño y la posibilidad de soportar transparencias). También es importante comprobar si el servidor ofrece descarga en el formato que esté puesto en esta línea.
- LAYERS: fundamental que aquí figure el nombre de la capa a descargar literal, tal cual lo veamos en las líneas xml del servidor. En teoría separando varios nombres de capa con comas (Ej: 8,12,15) el servidor wms debía descargarnos en una las que le pongamos; pero si son mapas del mismo tipo opaco y misma superficie la primera capa puede tapar el resto y aparentar que no funciona. Es muy útil por ejemplo para meter en una capa tres que suelen venir separadas en los servidores: ríos, curvas de nivel y carreteras. Pero también reconozco que no me ha funcionado siempre.
- NameInCache: nombre que queremos darle a la carpeta de caché donde van a descargarse los mosaicos correspondientes a este mapa.
- ContentType: relacionado con el tipo de archivo (image) y formato (png) con que sirve los datos el servidor. Podría tenerse que cambiar, por ejemplo por text/html o cualquier otra cosa si los datos a descargar son así, pero no puedo asegurar nada.

Una vez explicados los parámetros a tener en cuanta vamos a buscar una dirección WMS y elaborar un nuevo archivo params.txt sobre la plantilla. Un sitio clásico que ofrece multitud de servicios wms es el Geoportal IDEE (Infraestructura de Datos Espaciales de España), pero hay multitud de sitios nacionales, autonómicos y hasta locales donde conseguir direcciones de servicios Web Map Service. En su directorio de servicios vamos buscando por autonómicos/catalunya... hasta que entre la inmensa lista de direcciones encontramos una que nos puede interesar:
Pinchando sobre ella (es también la dirección que tendremos que copiar y pegar en el campo DefURLBase) se nos abre el archivo xml conteniendo la programación del servidor en el famoso lenguaje xml (Google Chrome si abre ventana directamente, supongo que otros exploradores también) y que tiene este aspecto:
En este a menudo inmenso texto es donde tendremos que ir escudriñando la información que nos interese, y que con cierta práctica localizaremos cada vez más rápido una vez nos habituemos a la estructura de este tipo de archivos. Por ejemplo a poco del comienzo encontramos las líneas donde se nos dice los formatos de imagen soportados por el servicio para la obtención del mapa::
<GetMap>

<Format>image/gif</Format>

<Format>image/png</Format>

<Format>image/jp2;subtype="gmljp2"</Format>

<Format>image/bmp</Format>

<Format>image/jpeg</Format>

<Format>image/tiff</Format>

Pero, yendo al grano, buscamos si el servidor dispone del mapa topográfico de Catalunya a escala 1:5000. Así que bajamos y bajamos por todas sus líneas descartando otros mapas hasta que encontramos esto (os selecciono en el texto los parámetros que podríamos necesitar):
En nuestro archivo params.txt pondremos la primera selección (mtc5m) en el campo LAYERS y poco más tenemos que cambiar en este caso (ya puesta la DefUrlBase por supuesto). No hay ninguna referencia a Style de capa (a veces si la hay), así que la dejamos en default. He destacado el formato image/gif para que os fijéis, pero en este caso al principio del xml se nos decía que el png también está soportado así que podemos probar a dejarlo (si no funciona se prueba a poner "gif" donde corresponde). La línea roja la he puesto para que veáis que a partir de ella ya empieza otra capa de otro mapa (el topo 25k en este caso) O sea que nuestro params.txt quedaría así:
En amarillo los campos obligatorios; en naranja aquellos que podéis darle el nombre que más os guste.
Con nuestro archivo params.txt salvado lo metemos en una carpeta junto con el archivo GetUrlScript.txt y la imagen que hará de icono identificativo (una bandera, un escudo,... lo que queráis; de hecho ni siquiera es necesario que esté esta imagen, sólo es para que haga bonito). A la carpeta le damos un nombre identificativo (por ejemplo Topo5k) y le ponemos la extensión .zmp. La carpeta tiene que estar dentro de la carpeta Maps del programa (yo las pongo dentro de la carpeta "user.maps" para saber siempre cuales son los mapas creados por mi). Dentro de user.maps podéis organizar las carpetas como mejor os venga, pues eso no afecta a la disposición en el menú para nada (lo que manda son los campos name y ParentSubMenu del archivo).
Os recomiendo muy mucho borrar el archivo Maps.ini (en la carpeta Maps) y el contenido de la carpeta cache cada vez que se añade una nueva carpeta de fuentes; así el programa arranca de cero creando un nuevo maps.ini con la nueva fuente y los mosaicos de la cache existente no ocultan el nuevo mapa creado llevando a confusión de si el mapa está correcto.
Arrancamos SASPlanet para comprobar y aquí tenéis el resultado:

No quiero enrollarme más aunque me deje cosillas en el tintero (por ejemplo añadir una Leyenda a la info del mapa que en algunos casos es imprescindible para interpretarlo), pero bastante ladrillo de artículo me ha salido ya. Espero no haberos liado demasiado, no he sabido hacerlo más claro y conciso. Si te has leído todo es que estás peor que yo, jajaja...
Cualquier cosa me dejáis comentario y a ver si entre todos lo solucionamos o mejoramos el sistema.

Tag : SASPlanet, WMS, xml
0 Komentar untuk "SASPlanet: crear fuentes WMS."

Back To Top