Instalación y manejo de servicios WMS con UMN MapServer (MS4W) y gvSIG

EN: THIS IS STILL A DRAFT ES: SIGUE SIENDO UN BORRADOR

=Intro=

Este articulo esta destinado a los usuarios de MS Windows que no tienen mucha experiencia informatica y estan curiosos de conocer UMN Mapserver y gvSIG. La guía procede paso a paso a la instalación de los software necesarios y a los primeros pasos para visualizar los datos geograficos. En este caso se van utilizando los datos en el formato estandard para la Web que se llama WMS (Web Map Service). El WMS es un estandard creado para el consorcio OGC (Open Geospatial Consortium).

Los software escogidos son dos de los mas famosos adentro del Software Libre para la Geomatica (GFOSS) pero no son los únicos con lo que se podría replicar estos ejercicios. Mirar la pagina web de OSGeo (http://osgeo.org) para obtener una lista de otros servidores y clientes WMS.

=Instalación MS4W=

Como servidor WMS hemos escogido UMN Mapserver, un poderoso servidor de mapas desarrollado por la Universidad de Minesota y que es una de las columnas portantes del GFOSS desde hace mucho. Para ofrecer una experiencia mas sencilla al publico neófito, hemos escogido el paquete para MS Windows de UMN Mapserver. Este paquete se llama MS4W

Que es MS4W
El fin de este paquete de software es de ofrecer a los usuarios de Mapserver de todos los niveles un entorno de trabajo para Mapserver sobre Windows. Es tambien un entorno para paquetes de aplicaciones que funcionan con MapServer. La pagina oficial de sitio se encuentra en:
 * http://www.maptools.org/ms4w/

La comunidad de software libre para la geomatica (OSGeo) esta trabajando activamente a otro proyecto que incluya los paquetes mas conocidos del software SIG. Este proyecto, recien empezado se llama OSGEO4W y su pagina principal es:
 * http://trac.osgeo.org/osgeo4w/



Descarga de MS4W
La pagina de descarga del paquete se encuentra directamente en el sitio web o tramite este enlace:
 * http://www.maptools.org/ms4w/index.phtml?page=downloads.html

Se recomienda, por este curso, la descarga de los siguiente paquetes:
 * setup.exe Installer - ms4w-2.2.9-setup.exe 19 MB
 * MapServer Itasca Demo Application - mapserv_demo_ms4w.zip 9 MB

MapServer Itasca Demo Application
Para completar la clase necesitaremos un juego de datos libres.

NOTA: la versión del software puede ser ligeramente diferente. En este caso el nombre podría cambiar en su parte numérica. En general este cambio no debe dar problemas con este curso.

Procedura de instalación de MS4W
una vez que tenemos el fichero ms4w-2.2.9-setup.exe en nuestro ordenador podemos lanzar el proceso de instalación con un doble click sobre su icono.

Primera ventana: Installation Options
Aparece una ventanilla che nos ofrece una lista de paquetes para instalar. Los primeros tres checkbox son fundamentales para que la aplicación funcione como en el curso.
 * MS4W base files
 * Specify Apache Port
 * Install and start Apache Service

una vez seleccionados se puede cliquear sobre el botón next.



Segunda ventana: Installation Folder
La segunda ventana de configuración indica el camino a la carpeta de instalación. El Installer ofrece por defecto C:\Program Files pero a nos otros conviene poner C:\ para la compatibilidad con otros paquetes MS4W mas antiguos. Si ponemos C:\ el instaler creerá una carpeta C:\MS4W con todos los ficheros. UNa vez configurado cliquear sobre el botón next.

Terzera ventana: Apache Port
La puerta del servidor Apache es de ser definida con criterio. Algunos trabajadores estan acostumbrados a utilizar un servidor Web en su entorno de trabajo y añadir otro (como es MS4W) puede que cree problemas. Para estar mas tranquilos vamos a escoger una puerta generalmente libre, la 9000. UNa vez configurado cliquear sobre el botón install.



Cuarta ventana: Completed
Si no ocurrieron problemas la installacion acaba con este mensaje.



Procedura de instalación de Itasca Demo
Una vez bajado el fichero podemos proceder a su instalación. Como MS4W no tiene un vero instalador si no que copia los ficheros en una carpeta (para nosotros C:\MS4W ), sus módulos necesitan solo de ser copiados dentro su estructura.

Con un doble click sobre el fichero comprimido de Itasca (mapserv_demo_ms4w.zip) se visualiza su contenido.



Se selecciona la carpeta ms4w, se copia (ctrl+c) y se pega el la carpeta C:\ confirmar la sobre-escritura para todos los ficheros (yes to all)



Para estar cierto que la instalación del paquete acabe con éxito se tiene que re-arrancar el servidor web (Apache). El en menú de windows, se busca la carpeta MS4W, luego Apache y en fin el comando MS4W-Apache-restart.



= el servidor WMS=
 * comprobar el mapfile
 * monstrar la llamadas fundamentales (getCapabilities, getMap, getLegend) con el browser

Comprobando la instalación de MS4W
Despues la instalacion de MS4W podemos comprobar su efectividad mirando la dirección Web que le hemos asignado. Para eso abrimos un browser web (ex: Mozilla Firefox, Iternet Explorer, ecc.) y teclearemos esta dirección:
 * http://localhost:9000



esta es la pagina que esperamos encontrar:



Comprobando el servido WMS
Con la instalación de MS4W tenemos Mapserver y sus capacidades de servidor WMS en nuestro ordenador. El paquete Itasca nos ha ofrecido los datos para comprobar que el servido WMS funcione. Ahora es el momento de mirar si el servidor WMS contesta como esperamos.

WMS es un estandard para comunicar entre softwares. Por eso tiene una llamadas muy clara y utiliza el URL (la dirección web) para pasar todos los parametros que se necesiten para obtener la respuesta deseada.

las tres llamadas tipicas para el WMS son:
 * getCapabilities
 * getMap
 * GetLegendGraphic

getCapabilities
getCapabilities nos ofrece las descripción general de los que hay adentro del servidor. La pagina que hay que visitar es esta:
 * http://localhost:9000/cgi-bin/mapserv.exe?service=WMS&request=getCapabilities&map=%2Fms4w%2Fapps%2Fmapserv-demo%2Fitasca.map&version=1.0.0



Hay muchas cosas para notar:
 * la dirección que hemos puesto esta compuesta por:
 * la dirección de servidor UMN Mapserver: http://localhost:9000/cgi-bin/mapserv.exe?
 * el parámetro que indica que queremos el servicio WMS: service=WMS
 * el parámetro que define cual tipo de respuesta necesitamos: &request=getCapabilities
 * el parámetro que especifica que file de mapas queremos que el servidor utilice: &map=%2Fms4w%2Fapps%2Fmapserv-demo%2Fitasca.map
 * el parámetro que indica la versión del servicio: &version=1.0.0
 * el servidor nos contesta con un fichero XML que responde a la descripción del fichero de mapa segundo el estandard OGC WMS.

getMap
La llamada mas utilizada, una vez que se sabe que capa quieremos es el getMap. Esta llamada devuelve una imagen con la mapa deseada.
 * http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca.map&&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=drgs&SRS=EPSG:4326&BBOX=-94.4981,46.9722,-92.988,47.9455&WIDTH=551&HEIGHT=356&FORMAT=image/png&STYLES=default&TRANSPARENT=TRUE

GetLegendGraphic
Muchos clientes de mapas manejan también las leyendas. Por eso un servidor de mapas bien configurado devuelve también la legenda de una capa respondendo alla llamada GetLegendGraphic.
 * http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca.map&REQUEST=GetLegendGraphic&SERVICE=WMS&VERSION=1.1.1&LAYER=drgs&FORMAT=image/png

Comprobar el Mapfile
Los Mapfiles son los ficheros que describen la configuración del servidor de mapas para UMN Mapserver. La instalacion por defecto del paquete Itasca Demo pone un Mapfile cuasi completo a lo que faltan un par de cambios para funcionar perfectamente.

Se necesita de un editor de texto, es: Notepad++ es un editor de texto que es Software Libre y que nos ofrece todo lo que necesitamos en nuestras clases.
 * http://notepad-plus.sourceforge.net/es/site.htm

NOTA: es importante que el editor de texto no sea Word o otros editores que utilizan testo enriquecido. Cualquier editor de texto sencillo estará bien.

abrir el Mapfile
Con el editor abrir el fichero de mapa: C:\ms4w\apps\mapserv-demo\itasca.map

PROJECTION
en la linea 13 cambiar: #  # Projection definition, consult the PROJ.4 documentation for parameter discussion #  # PROJECTION #  "proj=utm" #  "ellps=GRS80" # "zone=15" #  "north" # "no_defs" #  #   OR: #  #   "init=epsg:26915" # END

por: #  # Projection definition, consult the PROJ.4 documentation for parameter discussion #   PROJECTION #  "proj=utm" #  "ellps=GRS80" # "zone=15" #  "north" # "no_defs" #  #   OR: "init=epsg:26915" END

NOTA: en el Mapfile el caracter # significa el comentario. Mapserver nunca lee y interpreta el texto que sigue un #.

WMS_ONLINERESOURCE
el la linea 76: WMS_ONLINERESOURCE "http://127.0.0.1/mapserv-demo/index.html"
 * 1) change this value to match your setup

cambiar con: WMS_ONLINERESOURCE "http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca.map"
 * 1) change this value to match your setup

=Instalación gvSIG=

que es gvSIG
Desde el sitio oficial:

"gvSIG es una herramienta orientada al manejo de información geográfica. Se caracteriza por una interfaz amigable, siendo capaz de acceder a los formatos más usuales de forma ágil tanto ráster como vectoriales. Integra en una vista datos tanto locales como remotos a través de un origen WMS, WCS o WFS.

Está orientada a usuarios finales de información de naturaleza geográfica, sean profesionales o de administraciones públicas (ayuntamientos, diputaciones, consejerías o ministerios) de cualquier parte del mundo (actualmente dispone de interfaz en castellano, valenciano, inglés, alemán, checo, chino, euskera, gallego, francés, italiano, polaco, portugués y rumano ), siendo, además, gratuita.

Dada su naturaleza de software libre (open source) pensamos que es de gran interés para la comunidad internacional de desarrolladores y, en concreto, para los ambientes universitarios por su componente I+D+I. De hecho se ha hecho un especial hincapié en la extensibilidad del proyecto de forma que los posibles desarrolladores puedan ampliar las funcionalidades de la aplicación fácilmente, así como desarrollar aplicaciones totalmente nuevas a partir de las librerías utilizadas en gvSIG (siempre y cuando cumplan la licencia GPL)."

La pagina principal es esta:
 * http://www.gvsig.gva.es



descarga de gvSIG
Desde la pagina principal vamos a buscar la pagina de descarga de gvSIG Desktop:
 * http://www.gvsig.gva.es/index.php?id=1729&L=0&K=1

Para no tener problemas, es importante descargar la versión estable con prerrequisitos de instalación:



notar que al lado del fichero de instalación se pueden encontrar los manuales en ingles y castellano.

procedura de instalación de gvSIG
A la primera pregunta si quieremos installar gvSIG, contestamos Yes.



Contestar Yes también a la pregunta sobre los componentes adicionales.

Instalar JAI


Confirmar los pedidos de la licencia (si os gusta) y la carpeta de instalacion.



en fin gvSIG
Seleccionar el idioma.



Una mirada a las informaciones del programa de instalacion. Notar los requisitos mínimos de sistema.

Leer atentamente la licencia. Se puede notar como gvSIG tenga la licencia GPL, la misma del Linux. Leerla no cuesta mucho tiempo y se aprende algo interesante sobre como funciona el software libre.

La seleccion de paquetes permite limitar el espacio utilizado en el disco. nosotros vamos a instalarlos todos.

confirmar la carpeta de instalación

y al fin se copian los ficheros y se confirma la instalación.



=MS4W y gvSIG=
 * utilizar las capas de servidor WMS con gvSIG

Abrir gvSIG
Para abrir gvSIG hacemos un doble click sobre el icono del programa.

Crear una Vista
Para crear una vista recien abierto gvSIG, solo hay que cliquear sobre Nuevo. Si el boton no esta activo, comprobar haber seleccionado el icono Vista. Hay que dar un nombre a la vista y escogemos test WMS. Una vez confirmado se abre la ventanilla de la vista.

Añadir una capa WMS


Para añadir una nueva capa hay que cliquear sobre el botón o seguir en el menú Vista -> Añadir Capa.

En la ventana que se abre hay que escoger la pestaña del WMS y pegar el link al nuestro servidor en el campo Servidor. La nuestra URL es:
 * http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca.map

Si todo ha ido bien, una vez que cliqueamos sobre Conectar aparecerá en el campo Descripcion la escrita: This is a UMN MapServer application for Itasca County located in north central Minnesota.

Ademas encontraremos la version del servidor a la voz tipo del servidor el la parte baja de la ventana.

Una vez que hemos cliqueado sobre Siguiente nos aparece la pestaña de las informaciones de nuestro servidor WMS: podemos notar los varios datos (mejor dicho Metadatos) que nos dicen como se llama el servidor y que servicio ofrece.

La siguiente pestaña es la de las Capas. Doble click sobre una de las capas (seleccionamos: USGS 1:250,000 Digital Raster Graphic) para añadirla a las capas que queremos visualizar.

Selecionando Siguiente llegamos a la pestaña de los Estilos. En este caso no tenemos nada que seleccionar porque hay solo un estilo disponible.

La ultima pestaña nos pide los Formatos. Antes que cliquear sobre Aceptar hay que seleccionar un Formato (que en nuestro caso es image/png) y una proyeccion (ex: EPSG:4326).

en fin podemos Aceptar nuestra seleccion y mirar la capa cargada desde el servidor WMS.

Curiosidad
si queremos sacar el fondo gris al layer Country Borders hay que cambiar en el Mapfile en las lineas 166-169:

STYLE OUTLINECOLOR 128 128 128 COLOR 225 225 185 END

con STYLE OUTLINECOLOR 128 128 128 #COLOR 225 225 185 END

=Autores=
 * Lorenzo Becchi
 * Jorge Gaspar Sanz Salinas