5 Dise ño yact ua lización d e lSIM ACW EB. 5. 1 M a pserver ysufunciona m iento en este proyecto Mapserver genera mapas en un entorno CGI en el cual un usuario accede al servidor Apache desde un navegador. La tecnología usada para este acceso se llama Common Gateway Interface (Interfaz Común de Pasarela, abreviado CGI), permite a un cliente a través de un explorador web solicitar datos de un programa ejecutado en un servidor. CGI especifica un estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor web y una aplicación externa. Las aplicaciones CGI fueron una de las primeras maneras prácticas de crear contenido dinámico para las páginas web, en una aplicación CGI, el servidor web pasa las solicitudes del cliente a un programa externo. La salida de dicho programa es enviada al cliente en lugar del archivo estático tradicional. CGI ha hecho posible la implementación de funciones nuevas y variadas en las páginas web, de tal manera que esta interfaz rápidamente se volvió un estándar, siendo implementada en todo tipo de servidores web. El CGI de Mapserver utiliza generalmente los siguientes recursos: ? Un servidor http como Apache. ? El software Mapserver. ? Un archivo de inicialización que active la primera vista de la aplicación. ? Un archivo con extensión .map que controle los datos a visualizar o consultar y la manera de hacerlo. ? Un archivo de tipo plantilla que controle la aplicación Mapserver en la ventana del navegador (con extensión .html) ? Los datos espaciales, de tipos vectorial o ráster. El sistema de funcionamiento puede resumirse en la siguiente imagen: Imagen 19: Funcionamiento Mapserver CGI El navegador del usuario visualiza el archivo plantilla (html), el usuario manda una petición al CGI con los parámetros definidos en el archivo plantilla, CGI procesa la petición usando estos parámetros y la configuración del archivo .map, entonces se cargan los datos geográficos creando el mapa resultante y por último, retorna este mapa como una respuesta al archivo plantilla y llega al navegador. Nuestra aplicación incorpora además Mapbender para la gestión de las llamadas y la configuración de la plantilla, siguiendo el siguiente esquema de funcionamiento, más específico que el anterior: Imagen 20: Funcionamiento de la parte gráfica El funcionamiento normal de Mapserver como ya se ha dicho es usar los archivos .map y devolver una imagen en formato Png, las opciones gráficas que queramos mostrar en esa imagen se le pasan a Mapserver mediante una llamada Cgi, en esta llamada se le especifica a Mapserver que haga zoom en una zona, muestre una u otra capa, o nos muestre por ejemplo la información asociada a un punto de la imagen (query) , en este proyecto se ha usado la aplicación Mapbender, es una aplicación genérica, que además de funcionar con Mapserver lo hace con otras aplicaciones similares, es por ello que los requerimientos que pedimos a Mapserver para que nos muestre en la imagen se hacen mediante el estándar WMS. Este punto es de suma importancia en este proyecto, el uso del estándar WMS, ha cambiado totalmente el aspecto y la manera de programar la aplicación. Para integrar Mapserver y Mapbender debemos seguir ciertos pasos, y esta integración nos permite nuevas funcionalidades por un lado, pero introduce ciertas limitaciones por otro. El primer punto a tratar en esta integración es, por la parte del Mapserver, el archivo .map. En este proyecto se ha decidido trabajar de la manera más independiente posible en la relación entre ambas aplicaciones, esto quiere decir que nuestros archivos .map de Mapserver funcionan por si solos, aunque muestran otro aspecto sin Mapbender, por otro lado ha supuesto un mayor esfuerzo en la programación, pues muchas de las instrucciones en esos archivos no son tratadas, se eligió aumentar un poco la complejidad a costa de mejorar la versatibilidad de la aplicación. Respecto a los cambios introducidos en el archivo .map tenemos por un lado la declaración y configuración del propio archivo como un recurso accesible por un cliente WMS, es decir, cada archivo .map de nuestra aplicación funciona como un servidor WMS, por otro lado debemos dar información específica WMS para cada capa incluida en este archivo, como son algunos campos obligatorios (Wms_title, Wms_Name … ) y otros tantos opcionales. Mapbender al cargar cada recurso WMS hace una llamada para mostrar cada .map como una capa, con fondo transparente, y otras tantas limitaciones como que obvia campos como tamaño máximo a la que se muestra el mapa entre otros. Al ir completando nuestra aplicación debemos ir teniendo en cuenta estas limitaciones e intentar subsanarlas con las opciones que nos ofrece Mapbender. Se quiere expresar con esto la diferencia existente entre escribir código de un mapa para Mapserver y en hacerlo para Mapserver integrado con Mapbender, si bien tienen una gran parte en común, la manera de proceder es completamente distinta, es interesante este aspecto, y se comentara más adelante las diferencias más importantes cuando se explique la estructura general de un archivo .map de la aplicación Mapserver. En el aspecto del diseño gráfico también se han insertado los distintos logotipos correspondientes a los diferentes grupos implicados en este proyecto como podemos ver en la siguiente imagen en más detalle: Imagen 21: Logotipos El formato de página en otros aspectos como el color de fondo, como el tipo de letra, colocación de gráficos y otros elementos como unos estilos CSS proporcionados por la Universidad de Cádiz. 5. 1. 1 ElM a pfile Como se ha comentado anteriormente el Mapfile es el fichero que lee Mapserver y le dice como mostrar la información que estemos manejando. En un entorno en el que solo se utilice Mapserver, este archivo determinara completamente el aspecto de nuestra aplicación, exceptuando los marcos y de la página Web donde la integremos. En nuestro entorno Mapserver + Mapbender, solo usaremos las instrucciones puramente funcionales del archivo .map, otras serán obviadas y pasaran a ser parte de nuestra futura configuración en Mapbender. El archivo .map tiene una estructura de objetos bien definida, se explicara aquí más adelante comentando un archivo genérico, la estructura jerárquica es la siguiente: Imagen 22: Estructura del Mapfile Comentar sobre este esquema que en las casillas que aparece el nombre del objeto seguido de (n) indica que en el objeto superior puede haber varios de estos objetos. Es decir, en un objeto Map puede haber ‘n’objetos Layer pero un solo objeto Web. El asunto se complica cuando empezamos a ver la gran cantidad de parámetros que definen cada uno de estos objetos, por ello abordaremos en los siguientes apartados los distintos objetos que componen un Mapfile estándar de nuestro proyecto. 5. 1. 1. 1 O b je to M AP El objeto MAP, por ejemplo, puede tener los siguientes parámetros: Angle, Config, Datapattern, Debug, Extent, Fontset, Imagecolor, Imagetype, Layer (objeto), Legend (objeto), Maxsize, Name, Outputformat (objeto), Projection (objeto), Querymap (objeto), Reference (objeto), Resolution, Scale Scalebar (objeto), Shapepath, Size, Status, Symbolset, Symbol (objeto), Templatepattern, Units, Web (objeto) No todos son obligatorios, dependiendo del resultado que se desee habrá que definir unos u otros, se detallara esto para una mayor claridad con un ejemplo genérico comentado: MAP NAME "NOMBRE DEL ARCHIVO MAP" EXTENT 613300 3009000 627700 3024500 FONTSET "../etc/fonts.txt" IMAGECOLOR 26 200 220 IMAGETYPE PNG SYMBOLSET "../etc/symbols.sym" SHAPEPATH "../data/shape/" SIZE 375 403 STATUS ON UNITS METERS SYMBOL NAME CUADRADO TYPE VECTOR FILLED TRUE POINTS 0 0 0 4 4 4 4 0 0 0 END END En esta primera parte del fichero se declara la configuración elemental, en primer lugar el nombre y la extensión del mapa que vamos a dibujar. Se le indica también la ruta de los ficheros con distintos tipos de fuentes y símbolos a usar, así como la ruta en la que se encontraran los ficheros con datos. Se declaran también las unidades a usar y se declaran símbolos que no están contenidos en los estándares, pero que queremos utilizar, como es en este ejemplo el símbolo “cuadrado”. El campo Imagecolor, que declara el color de fondo del mapa, no es exportada en la llamada a Mapbender, es una de esas instrucciones que no se trataran como se ha comentado anteriormente. QUERYMAP STATUS ON STYLE SELECTED COLOR 255 255 0 END El objeto Querymap crea un mapa que resalta los resultados de una consulta, El objeto como todos, empieza por la palabra que lo define, en este caso Querymap y finaliza con “End”. El parámetro color define el color para resaltar los resultados de la consulta (por defecto es el amarillo), Status activará (ON) o desactivará (OFF) la creación de esta imagen resultado de la consulta, con Style podemos controlar de que manera resaltar (o no) los resultados, este objeto tampoco será exportado a Mapbender, que definirá sus propios estilos para una consulta. 5. 1. 1. 2 Elob je to O U TPU TFO R M AT OUTPUTFORMAT NAME png MIMETYPE image/png DRIVER GD/PNG EXTENSION png IMAGEMODE PC256 TRANSPARENT FALSE END Con OUTPUTFORMAT vamos a definir como queremos que sea la imagen de salida, extensión, numero de colores, fondo transparente… , en nuestro proyecto este campo no tiene demasiada importancia, si bien debemos intentar optar por el formato que menos recursos consuma para así optimizar la carga de las imágenes en el explorador. 5. 1. 1. 3Elob je to LEGEN D LEGEND IMAGECOLOR 250 242 120 KEYSIZE 20 15 KEYSPACING 5 5 LABEL SIZE MEDIUM TYPE BITMAP BUFFER 0 COLOR 0 0 89 FORCE FALSE MINDISTANCE -1 MINFEATURESIZE -1 OFFSET 0 0 PARTIALS TRUE END POSITION LL STATUS ON TRANSPARENT TRUE TEMPLATE "leyenda.html" END El objeto LEYEND nos indica cómo va a ser la leyenda, posición, tipo de letra, tamaño… , no nos detendremos en el, pues es uno de los campos que Mapbender obvia, estas líneas no son tenidas en cuenta por Mapbender, teniendo éste sus propios estilos de leyenda, no se usará pues la plantilla aquí indicada. 5. 1. 1. 4Elob je to W EB WEB TEMPLATE '../htdocs/cgrafica.htm' IMAGEPATH '../htdocs/tmp/ms_tmp/' IMAGEURL '/simacweb/htdocs/tmp/ms_tmp/' MAXSCALE 30000 MINSCALE 30 QUERYFORMAT text/html METADATA "WMS_TITLE" "Geografia Historica y Humana" "WMS_SERVER_VERSION" "1.1.0" "WMS_ONLINERESOURCE" "http://193.147.162.12/cgi bin/mapserv?map=/home/torrecillas/mapserver/apps/decepcion/data/nombredelmapa .map&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.0" "WMS_SRS" "EPSG:32720" "WMS_FEATURE_INFO_MIME_TYPE" "text/html" "WMS_INCLUDE_ITEMS" "all" END END El objeto WEB es de suma importancia, en una aplicación pura de Mapserver, en el se indica donde esta la plantilla html que vamos a usar para nuestro mapa, así como otros factores, como son máxima y mínima escala a la que mostramos el mapa, estos campos no serán tratados por Mapbender, en cambio es vital definir en el objeto Web el servidor WMS, debemos indicar la dirección del recurso accesible WMS, así como título, nombre y otras opciones de configuración. Es importante por un lado decir que versión de WMS vamos a usar, así como el formato en el que haremos las consultas (query), sobre el mapa, con la declaración "WMS_FEATURE_INFO_MIME_TYPE" "text/html" ,le decimos a Mapbender lo que a Mapserver le diríamos con QUERYFORMAT text/html , es decir que las consultas se devolverán a modo texto sobre una plantilla html. 5. 1. 1. 5Elob je to PRO JECTIO N PROJECTION "init=epsg:32720" END Con el objeto PROJECTION declararemos el tipo de proyección que usaremos para dibujar nuestro mapa. A partir de estas instrucciones, la mayoría relacionadas con configuración, iremos declarando las distintas capas que compondrán nuestro mapa, la primera que declaremos estará situada debajo del dibujo, a partir de esta irán por orden superpuestas las siguientes para Mapserver, sin embargo Mapbender va a obviar este orden y nos permitirá establecer este orden a posteriori. 5. 1. 1. 6Elob je to LAYER LAYER NAME Zonas DATA 'V5402005001' STATUS ON TYPE POLYGON MINSCALE 10 TRANSPARENCY 60 HEADER './query/cabecera_nombres.html' FOOTER './query/footer.html' TEMPLATE './query/nombres_query.html' PROJECTION "init=epsg:32720" END METADATA "WMS_TITLE" "Zonas Historicas" "WMS_SERVER_VERSION" "1.1.0" "WMS_SRS" "EPSG:32720" "WMS_FORMAT" "IMAGE/PNG" END CLASSITEM CODE #Vamos a distinguir entre tierra y bahia interior LABELITEM 'NAME' LABELMAXSCALE 50000 CLASS NAME 'Lugares y monumentos históricos' EXPRESSION 'HSMN' SIZE 2 COLOR 184 134 101 OUTLINECOLOR 180 130 100 END END END Con el objeto LAYER vamos definiendo cada una de las capas que compondrán nuestro mapa. En el indicamos el nombre del archivo que contiene los datos que queremos representar, así como las distintas plantillas html que usaremos para las consultas sobre esta capa. Por otro lado, observar que volvemos a declarar la proyección que vamos a usar, esto es debido a que podemos usar distintas proyecciones para distintas capas pues Mapserver puede hacer uso de la libreria Proj4. También se hacen declaraciones WMS, estas serán usadas como información por el cliente WMS, en nuestro caso Mapbender, mostrará el nombre de la capa y otra información de interés. Por último, distinguir el objeto Class, dentro de una misma capa, pueden existir distintos tipos de información, si bien una capa es de un solo tipo (puntual, lineal, poligonal, ráster,… ) , esta puede tener distintas clases de elementos, para la distinguir en la representación gráfica damos distinto aspecto a cada clase, según nos interese, esto se hace mediante el objeto Class. Es importante aquí comentar los distintos tipos de representación disponibles para nuestros datos, en primer lugar, si nuestros datos están almacenados en un fichero vectorial, en el se representaran las entidades a través de sus fronteras exteriores, y éstas pueden formar un polígono, una línea o un punto, que son los tres tipos de información que podemos indicar en el campo TYPE, entrando un poco más en detalle, las fronteras de la entidades están definidas mediante coordenadas, referidas a un sistema cartesiano, y toda esta información esta almacenada en el archivo de forma vectorial, por ejemplo sobre un punto podríamos tener la información (numero, x, y ) , y el punto (2 , 4 ,5 ), sería el punto número dos, situado en x=4 e y=5 , Mapserver dibujaría ese punto en esa posición, con las opciones gráficas que nosotros elijamos. Por otro lado, existe otra forma de almacenar los datos, mediante un modelo Ráster, es como si tuviésemos una imagen de fondo, a la que superponemos una retícula, esta va a funcionar como una matriz, que nos va a permitir referirnos a una zona concreta de la imagen, es decir podemos asociar de esta forma información superpuesta a una imagen, y asociada a una zona de esta, si tenemos un archivo de este tipo debemos indicar a Mapserver en el campo TYPE Ráster. Es muy usado en aplicaciones de Mapserver el campo TRANSPARENCY, que nos indicará como de opaca queremos que se muestre esta capa que estamos definiendo, de este modo, información superpuesta no tiene porque ocultar información que estaba siendo mostrada, como vemos en el ejemplo este campo también es configurable desde el archivo .map. 5. 2 M a pb e nd erysufunciona m iento en este proyecto Se introducirá en este apartado aspectos sobre el software Mapbender y su uso, si bien el usuario final no tiene porque acceder a este software, es útil para que las personas que se encarguen en un futuro del mantenimiento y actualización de la aplicación lo hagan de la manera más cómoda posible. Con Mapbender, sobre una aplicación programada para funcionar con Mapserver, y correctamente configurada como servidor Wms, podemos realizar cambios tanto funcionales, en algunos aspectos, como también cambios en la apariencia de la aplicación, se detalla a continuación una lista de posibles actuaciones (las más comunes, si bien no son las únicas) sobre la aplicación actuando solo sobre Mapbender: ? Cambios en el color de fondo de la página principal ? Añadir iconos y links a otras páginas ? Cambiar la configuración del mapa mostrado inicialmente ? Cambiar la prioridad entre capas y categorías ? Hacer que una capa sea o no consultable (debe serlo en Mapserver) ? Añadir funciones y controles específicos ? Crear grupos de usuarios con distintos privilegios ? Modificar proyecciones usadas Como se ha dicho para realizar estos cambios solo necesitamos Mapbender y actuar sobre su interfaz gráfica, no debemos actuar sobre los archivos .map de Mapserver. Al inicio de nuestra aplicación Mapbender se nos mostrarán las siguientes pantallas: Imagen 23: Login en Mapbender Para realizar crear una nueva aplicación (ya programada anteriormente en Mapserver), o modificar una existente debemos “logearnos” como “root” con contraseña de “root”y llegaremos al siguiente menú: Imagen 24: Menús Mapbender Este menú nos da acceso tanto al entorno de edición de aplicaciones ya creadas (llamadas Gui’s en Mapbender), o ir al menú administrador, donde podremos también modificar Gui’s existentes o crear nuevas, nos centraremos en el menú administrador: Imagen 25: Menús Mapbender Desde el menú administrador tenemos distintas opciones, crear un Gui, editar uno existente, modificar opciones de usuarios o configuración WMS, y cargar una nueva capa WMS desde un servidor remoto. En el aspecto de crear un nuevo gui no nos vamos a detener, pues es prácticamente editar uno existente y modificarlo a nuestro gusto para guardarlo con otro nombre. Es interesante en cambio la carga de nuevas capas WMS. El estándar WMS nos permite dos llamadas al servidor de servicios, GetCapabilities, que nos da la información de capacidades del servidor llamado (capas que contiene, nombres de estas, proyecciones… ), y GetMap, que pide un dibujo de un mapa con unas opciones dadas. Una vez creada nuestra Gui en blanco debemos añadir capas, esto no es más que exportar los servicios de un archivo .map de Mapserver configurado como se detallo en el punto tres de esta memoria, y siguiendo el procedimiento descrito a continuación: ? Nos “logeamos”en Mapbender como “root” ? Accedemos al menú WMS Management ? Vamos a la opción Load Capabilities ? Seleccionamos la Gui a la que queremos añadir la capa ? Ponemos la dirección del recurso accesible, que será algo de la forma siguente: http://193.147.162.12/simacweb /cgi~bin/mapserv?map=/home/torrecillas/ma pserver/apps/decepcion /data/base.map&REQUEST=GetCapabilities&SERVICE=WM S&VERSION=1.1.0 (vemos que indicamos la dirección del recurso (aquí local), la llamada GetCapabilities y la versión del servidor) Después de esto Mapbender nos mostrará la información de las capas cargadas, y ya estarán disponibles para editar su aspecto y configurar otras opciones. El siguiente paso para continuar con el desarrollo de nuestra aplicación será ir al menú de configuración de las capas WMS cargadas, en el tenemos distintas opciones como son prioridad de cada capa en la carga, estado por defecto en el mapa inicial, la opción de permitir o no la consulta sobre una capa en concreto, proyección usada, formato de las consultas, máxima y mínima escala a la que se muestra, etc., la interfaz de Mapbender para la selección de dichas opciones es la siguiente: Imagen 26: Menú WMS Mapbender De forma paralela, debemos diseñar el entorno gráfico en el que irá incrustado el mapa de nuestra aplicación, junto con las opciones y herramientas que queremos mostrar, es decir, debemos configurar el aspecto de la Gui, esto se hace en el menú “Edit Gui elements” , del apartado “Gui Management” de Mapbender, en el podremos como hemos dicho agregar controles sobre el mapa de entre los que trae programados Mapbender, así como modificar el aspecto gráfico externo de la aplicación (colores de fondo, cabeceras, iconos)… , resaltar que nunca con Mapbender modificamos aspectos gráficos del propio mapa, es decir, los iconos, colores, tipos de letra… , del mapa vendrán definidos en el archivo .map de Mapserver). Este menú presenta el siguiente aspecto: Imagen 27: Menú Mapbender Una vez editado el entorno en el que irá nuestro mapa, y elegida las configuraciones para las distintas capas importadas en el, podemos ver como seria el aspecto de este mostrado desde un navegador con la opción “show”. Imagen 28: Aplicación Mapbender Con estos pasos tendríamos concluida nuestra aplicación final, ésta se trata de un marco de Mapbender, que a su vez está corriendo en un servidor Apache, para la publicación en Internet debemos dar una IP publica de salida al servidor Apache, en nuestro caso ésta es la 192.147.162.12, los recursos locales serán accesibles en esa dirección, creamos un link en una plantilla html hacia nuestra aplicación Mapbender, esto sería el siguiente código en un archivo html: <iframe src="http://193.147.162.12/mapbender/frames/login.php?name=root&password=root &mb_user_myGui=prueba" width='100%' height='100%' frameborder='0' scrolling="no"></iframe> </div> <div align="left"> 5. 3 Geonetwork ysufunciona m iento en este proyecto La última aplicación introducida en nuestro proyecto, para la consulta de datos de manera alfanumérica es Geonetwork, se trata de una aplicación libre y basada en estándares diseñada para gestionar datos espacialmente referenciados, y hacerlo a través de la Web, incorpora herramientas de búsqueda y edición de este tipo de datos. La incorporación de Geonetwork a un entorno de trabajo consiste en modificar su aspecto y adaptarlo al de nuestra aplicación, proceso consistente en modificar archivos de su código fuente, que a su vez están escritos en distintos lenguajes (php, java, phyton … ), pero son modificaciones superficiales, que solo repercuten en el aspecto de la aplicación, por lo que no se entrara en más detalle en este aspecto. En apartados anteriores ya se han detallado los pasos que se han seguido para su instalación y configuración, detallaremos aquí por lo tanto aspectos de usuario. La pantalla inicial que nos encontramos al acceder a Geonetwork es la siguiente: Imagen 29: Pantalla inicio Geonetwork En ella podemos distinguir una casilla para la búsqueda de información, así como un menú de información clasificada por categorías, también se nos muestra la información que ha sido agregada más recientemente. Distinguiremos dos tipos de usuarios para Geonetwork, los que se limitan a consultar datos, para los cuales las explicaciones para su manejo no abarcan mas que las de cualquier buscador, y los usuarios administradores, estos últimos deben activar su entorno identificándose como tales en el recuadro de la esquina superior derecha: Imagen 30: Identificación en Geonetwork Una vez identificados nos aparecerán nuevas opciones para trabajar con nuestros datos, desde editar los datos existentes, hasta subir nuevos datos o crear distintos grupos con más o menos derechos sobre grupos de datos. Este es el aspecto del menú de administración: Imagen 31: Menú administración Geonetwork Vemos que podemos cambiar nuestra contraseña, la información personal de nuestra cuenta, administrar grupos de usuarios y gestionar datos, nos centraremos en esta primera parte, la introducción de datos. Normalmente no realizaremos una introducción manual de todos los datos, estos suelen estar recogidos en ficheros Xml, que es un estándar para el intercambio de datos, por lo que nos centraremos en importar datos de un Xml y añadirle palabras claves, así como clasificarlo correspondientemente dentro de una categoría para facilitar su localización por parte de otros usuarios, si picamos sobre “Insertar metadatos XML”, llegamos al siguiente menú: Imagen 32: Introducción de datos Geonetwork El funcionamiento es bien sencillo, se debe copiar el contenido de nuestro fichero Xml dentro del recuadro habilitado para ello, seleccionar las opciones y pulsar sobre “Insertar”. Si el archivo no cumple todos los requisitos del estándar Xml, la aplicación no nos dejará validar los datos, para importarlos pues debemos dejar la casilla “Validar”en blanco, o agregar los campos que falten en nuestro archivo. Una vez realizados estos pasos, se importaran los datos y se nos pedirá que modifiquemos lo que consideremos conveniente y guardemos la configuración. Imagen 33: Introducción de datos Geonetwork Es interesante en este punto dar un titulo descriptivo a la capa (que no sea la numeración asociada a la capa), así como añadir palabras clave para su posterior búsqueda, esto es en el campo “Keyword”, que veremos más claramente mostrando una vista en bloques del archivo (seleccionamos en el menú de la izquierda la opción “Vista en Bloques”), nos llevará esto a la siguiente pantalla: Imagen 34: Introducción de datos Geonetwork Cuando hayamos acabado de completar y verificar la información pulsamos sobre la opción “Guardar y Cerrar”, pasará a mostrarnos la información que acabamos de subir a la base de datos: Imagen 35: Introducción de datos Geonetwork En esta pantalla podemos aun añadir un logotipo para esta capa (una vista en miniatura), así como asignarle categorías y editar los privilegios para los distintos grupos de usuarios que vayan a acceder a este dato. La contraseña para el único administrador al finalizar este proyecto es: “User: admin. Pass: admin. “, así mismo existe un grupo de usuarios creado llamado Sample Group con privilegios de lectura sobre todos los datos subidos. 5. 4 Diseño d elentorno web Respecto al aspecto general de esta, viene marcado por un estilo concordante a las páginas Web de la UCA, que es la principal institución participante en este proyecto, aunque no la única, como banner superior estará en los distintos apartados un logotipo extendido del grupo de investigaciones geodésicas de la UCA. A la izquierda existe un menú que nos permite navegar por los distintos contenidos informativos respecto al proyecto y la propia isla, desde el se accede a la sección que nos ocupa principalmente, la de consultas. Desde la sección de consultas podemos acceder a cuatro zonas, una zona de descarga de datos, un buscador alfanumérico y una zona de consultas gráficas y un apartado explicativo del uso de recursos WMS, se ha decidido que tanto las consultas gráficas como las alfanuméricas se abran en pantallas independientes, al tratarse de aplicaciones diferenciadas, y que requieren el mayor espacio visual posible para un mejor uso de ellas. Imagen 36: SIMACWEB 5. 5 Solución d e prob lem a s En este punto se pretenden solucionar los problemas más comunes que pueden surgir en el uso de nuestra aplicación, así como indicar ciertas fuentes que pueden ser útiles de cara a problemas con futuras mejoras e implementaciones. 5. 5. 1 Ca íd a d e lse rvid or El problema más común al que nos enfrentaremos va a ser sin duda la caída del servidor, debido a un mantenimiento del sistema, corte de luz… En este caso debemos arrancar todas las aplicaciones y sus dependencias, la manera de proceder es la siguiente: En primer lugar debemos arrancar Mysql y decirle que use la base de datos del Mapbender, esto es escribir literalmente desde el terminal, con los permisos correspondientes (esto es logeados como root para evitar problemas): > /etc/init.d/mysqld start >después entrar en el promt de mysql, escribiendo >mysql >Decir que use la base de datos mapbender, esto es: >\u mapbender Con esto arrancaríamos Mysql El siguiente paso será arrancar el apache, debemos ir a la carpeta /mapserver/ (dentro de torrecillas), donde esta instalado el apache. Una vez en esa carpeta esta todo automatizado con scripts, solo debemos hacer: > . setenv.sh (hay un punto al comienzo de la instruccion) > fgs start Con esto volveremos tener el apache con Mapbender y Mapserver corriendo. Por último nos restaría arrancar Geonetwork, las instrucciones para arrancarlo serian: Ir a la carpeta del servidor Tomcat, /tomcat/, e ir a la ruta .../tomcat/bin/ desde esa ruta escribir: >export JAVA_HOME=/usr/java/jdk1.6.0_06/ >sh startup.sh Esto arranca el servidor Tomcat en el puerto 8082, nos queda pues arrancar Geonetwork, ir a la ruta /geonetwork/bin/ y escribir: >sh start-geonetwork Con estos pasos el sistema vuelve a ser arrancado desde cero. Respecto a posibles errores de la aplicación en modificaciones futuras, es de enorme utilidad los foros Nabble ( www.nabble.com ,Junio 2008 ), donde existen foros específicos para desarrolladores de las tres herramientas principales que usamos, así como también de apache y Tomcat, además los mensajes son leídos y contestados en muy corto espacio de tiempo, pues en ellos participan los propios diseñadores de las aplicaciones Mapserver, Mapbender y Geonetwork. 5. 5. 2 N o se visua liza una capa vect oria l En primer lugar la manera de proceder será comprobar que el formato del archivo vectorial es admitido por Mapserver, haciendo uso de la tabla 3 de esta memoria. Si el formato es admitido, este fallo vendrá dado sin duda por una alteración en el servidor, los posibles cambios que pueden inducir a este fallo son: ? Cambio de nombre de un recurso dentro del archivo .map ? Cambio en la ruta del archivo de datos ? Cambios en la dirección del servidor WMS configurado ? Otros fallos de configuración en el servidor WMS La manera de proceder en este caso es comprobar en primer lugar que el archivo vectorial está en la ruta indicada, posteriormente buscaríamos incongruencias en alguno de los puntos anteriores hasta localizar la causa del fallo. 5. 5. 3 N o se visua liza una capa ráste r Después de cotejar con la Tabla 3 de esta memoria, y asegurarnos que el formato es soportado por Mapserver, del mismo modo que el anterior, este fallo también vendrá dado por una alteración el los datos o rutas albergados en el servidor, los posibles cambios que pueden inducir a este fallo son del mismo modo: ? Cambio de nombre de un recurso dentro del archivo .map ? Cambio en la ruta del archivo de datos ? Cambios en la dirección del servidor WMS configurado ? Otros fallos de configuración en el servidor WMS La manera de proceder en este caso es comprobar en primer lugar que el archivo tipo Ráster está en la ruta indicada en el archivo .map, posteriormente buscaríamos incongruencias en alguno de los puntos anteriores hasta localizar la causa del fallo 5. 5. 4 Losre sult a d osd e una consult a no son lose spe ra d os En la escritura del archivo .map se da un valor de tolerancia en pixeles al área consultable, cuando existen muchas capas en modo consulta y la escala de muestra del mapa es lejana, el sistema puede mostrarnos una información sobre otra capa, y no la que queremos consultar. El modo de proceder es ser metódico en las consultas, es decir, tener activadas las consultas unicamente de las capas sobre las que queremos hacerlas, y realizarlas a una escala todo lo cercana posible para evitar pinchar sobre otra zona 5. 6 Posib lesa ctua liza cionesd elSIM ACW EB. 5. 6 . 1 Introd ucción d e nue va inform ación g ráfica A lo largo de esta memoria ha sido detallado como introducir nuevos datos o crear nuevas pantallas en nuestras aplicaciones, a modo de resumen detallar: ? Creación de un archivo .map de Mapserver , detallado en punto 4.3 apartado “El Mapfile”o inclusión de la capa en un fichero Map ya creado. Una vez creado el Mapfile y configurado el servidor WMS en él, copiamos la dirección del recurso WMS accesible y se la damos a Mapbender, en el apartado WMS Management: Imagen 37: Introducción de una nueva capa Con esto hemos añadido una nueva capa, del mismo modo, si queremos modificar las capas de un archivo .map existente, debemos realizar el mismo proceso de actualización de recursos WMS anterior. 5. 6 . 2 Introd ucción d e una nue va G U Ie n M a pb end e r ? Creación o modificación de una Gui en Mapbender, detallado en punto 5.2 “Mapbender y su funcionamiento en esta aplicación” Éste sería el paso cronológicamente anterior a la introducción de capas en la aplicación, se trata con esto de preparar el entorno gráfico en el que irán nuestros datos. 5. 6 . 3 Introd ucción d e nue vosm e t ad at os. Este punto está totalmente documentado y detallado en puntos anteriores de esta memoria, concretamente en: ? Introducción de nuevos datos en Geonetwork, apartado 5.3 “Geonetwork y su funcionamiento en este proyecto” 5. 6 . 4 Consid e racione sEspecia le s Existen unas capas especiales para puntos acotados, batimétricos y vértices, estas constan de dos campos para los valores altimétricos, uno decimal y otro entero, el motivo es que Mapserver no ofrece esta posibilidad de conversión, y si un campo tiene formato decimal, se muestra en notación científica, lo que lo hace menos intuitivo, esta modificación se ha de tener en cuenta para una futura actualización de estas capas. Por otro lado, la capa ‘V2401005002’, “Nidos de pingüinos barbijos”, consta de doble información superpuesta, una referente al año 2003 y otra a 1986, esto se debe tener en cuenta para cualquier modificacion referente a esta capa.