Oct 28

Geoserver, PostGIS y OpenLayers

mapa de geoserverÚltimamente estoy jugando con el tema de pintar mapas en web (aparte de la API de google maps). Buscando herramientas me he encontrado con el conjunto Geoserver, PostGIS y OpenLayers. Son herramientas independientes, pero que encajan muy bien las unas con las otras, facilitando mucho el hacer mapas en web.

PostGIS es un añadido a una base de datos Postgresql que permite almacenar información de mapas y cosas para dibujar en los mapas en un formato bastante estándar y que entienden muchas herramientas. En ella podemos crear nuestras tablas a medida, pero de forma que determinadas columnas, las que nosotros queramos, representen la información geográfica en un formato determinado. Por ejemplo, podemos hacer nuestra tabla de aviones con todos sus datos y en una columna poner su posición y altura en un formato específico de PostGIS. En otra tabla geometry_columns, específica de PostGIS, sólo debemos hacer una entrada indicando el nombre de nuestra tabla aviones, cual es la columna con las coordenadas y el tipo de figura que hay ahí (en este caso, punto en 3D, aunque podríamos tener polígonos, líneas y otras formas geométricas).

GeoServer es un servidor web de mapas, que puede arrancarse aislado o bien sobre un Tomcat o similar. GeoServer tiene una interfaz de administración web en la que podemos definir capas de datos, por ejemplo, una imagen de mapa de fondo cogido de un fichero, o un mapa vectorial cogido de algún fichero o de una base de datos, o una capa de aviones cogida de la base de datos PostGIS. En este último caso, simplemente dando los parámetros de conexión con la base de datos, GeoServer consultará la tabla geometry_columns para identificar qué tablas de base de datos tiene datos georreferenciados y nos las mostrará, para que elijamos que queramos. Para cada capa podemos definir estilos de presentación, tipos de líneas, de marcas.

OpenLayers es una librería javascript que es capaz de conectarse con GeoServer (o con otras fuentes de mapas, como google maps), para presentar en nuestro navegador las capas que elijamos de nuestro servidor de mapas/datos. En cuatro líneas podemos presentar el mapa, tenemos zoom, arrastrar, click sobre las entidades que aparezcan en el mapa, etc, etc. Puedes ver ejemplos en http://openlayers.org/dev/examples/

El problema el de siempre, o lees un montón de documentación, o empiezas con copìa ejemplo, pega ejemplo, ensayo y error. La documentación de GeoServer se basa mucho en ejemplos. Así que las cosas van saliendo, pero también tienes pequeños tropezones que te pueden hacer echar la tarde entera para resolver algo que luego es una chorrada. Hoy, por ejemplo, he echado la tarde intentando que se vean dos capas simultáneamente, una de fondo con un mapa y otra encima con puntos. El problema es que la una tapaba a la otra y no sabes si la transparencia de la de encima debes conseguirla en GeoServer o en OpenLayers. Al final fue pasándole desde OpenLayers un parámetro a GeoServer cuando se pide la capa….

Entradas relacionadas:

9 Responses to “Geoserver, PostGIS y OpenLayers”

  1. Tweets that mention Diario de Programación » Blog Archive » Geoserver, PostGIS y OpenLayers -- Topsy.com Says:

    [...] This post was mentioned on Twitter by micho g, Jose Manuel Martínez. Jose Manuel Martínez said: Geoserver, PostGIS y OpenLayers http://is.gd/gp0Zn [...]

  2. Lek Says:

    Lo de perder un montón de tiempo en una chorrada me ha pasado a mí haciendo un plugin para Eclipse… varias veces. Te pones a buscar, a mirar… y al final lo mismo es añadir una línea de código.

  3. de la red – 29/10/2010 « Tecnologías y su contexto Says:

    [...] Geoserver, PostGIS y OpenLayers Últimamente estoy jugando con el tema de pintar mapas en web (aparte de la API de google maps). Buscando herramientas me he encontrado con el conjunto Geoserver, PostGIS y OpenLayers. Son herramientas independientes, pero que encajan muy bien las unas con las otras, facilitando mucho el hacer mapas en web. [...]

  4. Jesús Says:

    A veces es necesario no solo conocer unas herramientas, sino conocer un poco la tecnología que se maneja. En este caso, es fundamental conocer el estándar que implementa GeoServer (o MapServer) y que usa OpenLayer. Este estándar se llama WMS (Web Map Service), y puedes descargartelo desde la web de la OGC (Open GeoSpatial Consortium).

    Eso no quita que, efectivamente, la documentación de las herramientas a veces deja mucho que desear.

  5. Diario de Programación » Blog Archive » Programando a ciegas Says:

    [...] proyecto en el que nos toca hacer un portal web con mapa. Por ello hace tiempo me puse a jugar con GeoServer y OpenLayers. Pero ahora que nos ha caído realmente y me toca a mí desarrollar, llevo ya unos [...]

  6. Diario de Programación » Blog Archive » Jugando con JSF Says:

    [...] que ando haciendo páginas web en el curro, estoy tocando bastantes cosas nuevas: Geoserver, Openlayers, jaxmpp2, jQuery…. Y todo ello a base de ensayo y error y poco [...]

  7. Hector Says:

    Hola queria saber como solventaste el problema que comentas en este artículo, en la parte de openlayers sobre que no se te veia la capa de puntos al tener otra capa poligonal, ya que me pasa lo mismo y no doy con el error.
    1 saludo

  8. Chuidiang Says:

    Hola:

    Jugando en cada capa WMS con los parámetros transparent y isBaseLayer. La de fondo es base layer no transparente y la de puntos no es base layer y sí transparente. Tienes aquí ejemplos http://docs.openlayers.org/library/introduction.html

    Se bueno.

  9. Darwin Says:

    Interesante!, espero comentar mis experiencias usando está solución de webmapping

Leave a Reply