Postgis, Geoserver y Leaflet (II).

Hola a todos, en el último post hablaba de cómo crear un simple mapa con Leaflet, pero en esta ocasión vamos a hablar de cómo publicar nosotros una capa WMS con Geoserver, partiendo de una capa de Postgis y cómo visualizarla con Leaflet. Como veis es un proceso de tres pasos en el que vamos a usar distinto software. Desafortunadamente, como ya comenté, en mi servidor no puedo ni publicar capas vía Geoserver y menos todavía tener instalado Postgis, así todos los pasos que realice los haré en “local”, no obstante al final del post habrá un vídeo grabado por mi en el que explicaré de viva voz lo que aquí se detallará.

Sin más preámbulos comenzamos con el tema en cuestión:

En primer lugar deberemos tener ya una Base de Datos Postgis en la que deberemos de poder visualizar algunas capas.

mundo_qgis

Como veis en mi caso he optado por un capa de alcance global donde están representados todos los países del mundo y que estoy visualizando con QGIS.

Una vez tenemos esto preparado debemos ir a Geoserver e ingresar como administradores, para ello en mi navegador tecleo lo siguiente en la barra de direcciones:

http://localhost:8080/geoserver/web/

Nos logeamos y entramos en la página principal de Geoserver:

geoserverUna vez aquí veremos que tenemos muchas opciones, nosotros nos iremos a las opciones del margen izquierda que se llama “Datos”.

geoserver-datosAquí como vemos podemos elegir entre varias opciones, nosotros vamos a hacer las cosas bien desde el principio y vamos a crear un espacio de trabajo nuevo, que es una manera de organizar las capas que se van a publicar. Imaginaos que tenemos muchas capas de varios clientes publicadas, que en principio nada tienen que ver unas con otras, ¿cómo organizarse y no meter la pata con cada conjunto de capas para cada cliente? Pues con espacios de trabajo diferentes podremos separar a cada cliente, entidad o proyecto. Si entramos en la opción de “Espacios de Trabajo” veremos lo que a continuación aparece:geoserver-espacio_trabajo1

Como podéis comprobar en la captura hay varias opciones, nosotros haremos click en agregar un nuevo espacio de trabajo, llegando a este cuadro de dialogo:

geoserver-espacio_trabajo2

simplemente con que pongamos el nombre y una URI asociada al espacio de trabajo es suficiente. (Yo para hacer pruebas he puesto http://localhost y el mundo no ha explotado, así que supongo que estará bien).

Una vez ya tenemos nuestro espacio de trabajo creado, procederemos a crear un almacén de datos desde el cual podremos acceder a las capas que nos interesan. Vamos allá. Debajo de donde vimos que podíamos entrar a gestionar los espacios de trabajo podemos entrar  a gestionar los “Almacenes de Datos”. Esta parte es muy importante porque es donde Geoserver conectará con nuestra BBDD, si algo aquí falla, todo fallará. Cuando entremos a gestionar los Almacenes nos encontraremos con esto:

geoserver-almacenes_datos

Para agregar un nuevo almacén es tan sencillo como hacer click en “Agregar un nuevo almacén”. Una vez lo hayamos hecho nos saldrá lo siguiente:

geoserver-almacenes_datos1

Como las BBDD de Postgis son de carácter vectorial, miraremos en la opción de datos vectoriales y veremos como efectivamente tenemos esa opción disponible. Pues bien, ya sabéis que hay que hacer, entramos en esta nueva opción.

geoserver-almacenes_datos4

Como podemos ver hay muchas opciones en esta nueva ventana, pero no os preocupéis porque las mínimas necesarias para que nuestra capa se visualice son unas pocas, vamos a ver cuales son:

Información Básica del almacén:

Espacio de trabajo Nombre del espacio de trabajo que hemos creado anteriormente.
Nombre del origen de datos Nombre que queremos para nuestro almacén.
Descripción Una pequeña descripción de nuestro almacén de datos.

Parámetros de conexión:

host Nombre del host que almacena la BBDD, como lo estoy haciendo en local le puse localhost.
port El puerto por el que “escucha” Postgis, a no ser que durante la intalación de Postgis lo cambiaráis este será 5432.
database El nombre de la BBDD que queremos conectar.
schema El esquema de la BBDD, por lo general es public.
user El nombre de usuario de la BBDD.
passwd La contraseña del usuario.

En principio estos son los parámetros básicos y necesarios para la conexión a la BBDD geográfica que queremos de Postgis. Si queréis saber algo más al respecto aquí tenéis la documentación de Geoserver.

Bueno, pues esto no ha acabado aún aún tenemos que configurar la capa que queremos servir. Doy por hecho que la conexión a la BBDD ha sido exitosa y que podremos continuar adelante. Bien, ahora pasaremos a lo que es el gestor de Capas. ¿Donde se encuentra? Pues en el margen superior izquierda debajo de “Almacenes de Datos”, encontraremos la opción “Capas”. Si entramos en esta nueva ventana encontraremos esto:

geoserver-almacenes_datos5

Como venimos haciendo haremos click en “Agregar nuevo recurso”, así que lo haremos para encontrarnos con lo siguiente:

geoserver-almacenes_datos6

Aquí elegiremos un espacio de trabajo en combinación con un almacén de datos. (Un espacio de trabajo podría tener diferentes almacenes de datos). Dependiendo de la cantidad de tablas que tenga nuestro almacén de datos, tantas serán las que nos aparezcan aquí como susceptibles de ser publicadas. Así que procederemos a apretar la opciṕon “Publicación” que nos aparezca al lado del nombre de la capa que queramos. Como yo solo tengo una tabla, pues esa será la que proceda a publicar:

geoserver-almacenes_datos7

Bien, una vez apretamos esta opción llegamos a las opciones de configuración de nuestra capa:

geoserver-almacenes_datos10

De aquí como sucedió antes no todas las opciones son necesarias para la publicación de la capa, vamos a ver cuales son las básicas:

Información básica del recurso:

Nombre El nombre de la capa.
Título El título que tendrá nuestra capa en cuestión.
Resumen Un resumen de lo que contiene nuestra capa. (Opcional)

Sistema de referencia de coordenadas:

SRS Nativo El sistema de referencia de nuestra capa. Debería de aparecer el SRS que le pusimos en Postgis.
SRS Declarado El sistema de referencia en el que queremos que se muestre nuestra capa.
Gestión del SRS Aquí le decimos lo que debe de hacer Geoserver con los SRS, tenemos tres opciones, mantener el nativo, forzarlo al declarado o reproyectar del nativo al declarado.

Encuadres:

Encuadre nativo En ambas opciones lo mejor es que le apretemos a “calcular desde los datos”.
Encuadre Lat/Lon

Una vez tenemos esto configurado vamos a guardar y nos aparecerá nuestra capa junto con el resto de las capas publicadas que viene por defecto en Geoserver. Para comprobar que todo anda correctamente, desde las opciones de gestión de los datos en el margen superior izquierda, podremos ver la opción “Previsualizar capas”. Si le damos iremos a otra ventana donde elegiremos nuestra capa recién publicada y apretaremos a la opción “OpenLayers”.

geoserver-almacenes_datos11

Y si todo funciona correctamente podremos ver nuestra capa en un pequeño visor de OpenLayers.

Después de todo este largo proceso de publicación podremos conectar esta capa con OpenLayers o Leaflet. Yo para seguir con la última entrada del blog lo haré desde Leaflet. Daré por sabido ya cómo publicar una capa OSM con Leaflet y pasaré directamente a explicar las conexiones WMS con esta biblioteca javascript para mapas. La forma de crear una capa en Leaflet a partir de una WMS es esta:

var mundo = new L.TileLayer.WMS('http://localhost:8080/geoserver/Blog/wms', {
layers: 'Blog:mundo_definitivo',
styles: ' ',
format: 'image/png',
attribution: '© IniSIG' })
.addTo(map);

Existen algunas diferencias con respecto a la capa de OSM que publicamos la última vez. Vamos a ver parte a parte quien es quien:

'http://localhost:8080/geoserver/Blog/wms'

Esta es la llamada que hace Leaflet al espacio de trabajo bajo el cual está servida nuestra capa por Geoserver. Notad que el dominio es localhost, ya que lo estoy haciendo todo dentro de mi propia computadora.

layers: 'Blog:mundo_definitivo'

Aquí especificamos que capa queremos que se escoja de dentro de todas las posibles de dentro del espacio de trabajo.

styles: ''

El estilo bajo el cual se cargará la capa, tened en cuanta que son comillas simples vacías, es decir, no hay nada entre medias.

format: 'image/png'

Este es el formato bajo el cual pedimos la capa, en este caso es png. El resto de opciones ya las expliqué por tanto on vamos a meternos con ellas.

Espero que este post os haya sido útil y didáctico, puesto que ese es el objetivo del mismo y como siempre si os ha gustado, compartidlo.

Un saludo a todos y hasta otra!!!

2 pensamientos sobre “Postgis, Geoserver y Leaflet (II).”

Deja un comentario