GeoServer y MySQL

De ChuWiki
Saltar a: navegación, buscar

Geoserver con MySQL

Para poder usar GeoServer con MySQL debemos, aparte de tener instaladas ambas herramientas, tener en cuenta lo siguiente:

  • MySQL, a partir de la versión 4.1, viene ya preparado con extensiones para bases de datos geográficas según el estándar establecido por OGC Open Geospatial Consortium. Nuestra versión de MySQL debe ser al menos la 4.1 o superior.
  • GeoServer no soporta directamente MySQL, por lo que necesitamos descargarnos e instalar una extensión de GeoServer. Esta extensión se puede bajar de http://geoserver.org/display/GEOS/Stable en el enlace MySQL que hay en el apartado Data Store. Por supuesto, la versión de la extensión debe coincidir con nuestra versión de geoserver. Nos bajamos el zip en el que básicamente hay dos ficheros jar que debemos poner en el directorio WEB-INF/lib de nuestro Geoserver. Una vez copiados arrancamos GeoServer (o lo reiniciamos si ya estaba arrancado).

Crear la base de datos

Dentro de la consola de comandos de MySQL, podemos crear una base de datos para los datos que queramos mostrar en el mapa de geoserver y crear una tabla de ejemplo. Los comandos serían

mysql> create database geoserver;
Query OK, 1 row affected (0.04 sec)

mysql> use geoserver;
Database changed

mysql> create table test (id integer not null auto_increment, primary key(id), g GEOMETRY);
Query OK, 0 rows affected (0.10 sec)

mysql> INSERT INTO test VALUES (1,GeomFromText('POINT(1 1) '));
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO test VALUES (2,GeomFromText('POINT(1 2) '));
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test VALUES (3,GeomFromText('POINT(2 2) '));
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test VALUES (4,GeomFromText('POINT(2 1) '));
Query OK, 1 row affected (0.00 sec)

Básicamente hemos creado la base de datos, una tabla y metido en ella cuatro puntos. Debemos fijarnos en:

  • En la tabla test, la columna que contendrá la información geográfica es de tipo GEOMETRY. Este es uno de los tipos específicos de las extensiones geoespaciales de la base de datos y que no existe en versiones previas de MySQL. En este tipo de columna podremos meter puntos, líneas y polígonos. La tabla debe tener también una columna de clave primaria, que permita a GeoServer referenciar cada uno de los elementos geográficos.
  • A la hora de hacer los insert, se hace por medio de la función GeomFromText(), propia también de las extensiones geoespaciales de MySQL. Esta función admite como parámetro un texto que representa la geometría y que sigue una sintaxis concreta, conocida como WKT o Well Known Text

Ya tenemos nuestra tabla con cuatro puntos.

Configurando el Data Store en GeoServer

Ahora entramos en la consola de administración de GeoServer, por defecto accesible en http://localhost:8080/geoserver/web y pinchamos el enlace "Almacenes de datos" y "Agregar nuevo almacén"

GeoServer-AlmacenDatos.png

Si hemos instalado bien la extensión de GeoServer para MySQL, entre los "Orígenes de Datos Vectoriales" nos tiene que salir la base de datos MySQL

GeoServer-MySql.png

Pinchando "MySQL" nos sale una ventana con los parámetros de conexión con la base de datos, que debemos rellenar, en concreto es importante el nombre de la base de datos que creamos en los pasos anteriores "geoserver"

GeoServer-ParametrosConexionMySQL.png

Una vez rellenos y salvados, nos aparecerá un listado de todas las tablas que hay en la base de datos con columnas con información geoespacial. En nuestro caso solo sale la tabla "test". Sólo tenemos que pulsar el enlace "Publish" de la tabla que queramos publicar.

GeoServer-TablasBD.png

El resto es símplemente Publicar una capa con GeoServer