Introducción a Openlayers

Aprovechando la reciente publicación de la release de OpenLayers 2.10 voy a intentar resumir en pocas líneas qué es OpenLayers, su estructura y la forma de trabajo que, a mi parecer, es más provechosa para explotar esta herramienta.

Para empezar, voy a resumir una serie de conceptos básicos necesarios para resultar productivos trabajando con Openlayers:

  • Conocimientos SIG: Al menos hay que saber lo que significa GIS en el entorno de software libre, principalmente que son, como funcionan y para que se utilizan los servicios estándares de la OGC (WMS, WFS, WCS...)
  • Javascript: Openlayers no es más que una librería Javascript, muy potente, pero con los contras que supone serlo (difícil depuración, problemas de compatibilidad con navegadores, etc...). Por ello es imprescindible unos conocimientos básicos de Javascript y es recomendable tener algunos conocimientos de Prototype [1] y JSON [2]

¿Qué es OpenLayers?

"OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. OpenLayers is completely free, Open Source JavaScript, released under a BSD-style License (also known as the Clear BSD)."

Todo eso aparece en la página del proyecto [3]. Básicamente es un cliente visualizador de mapas ligero para páginas web basado en JavaScript.

Su uso es sencillo: Se introducen las librerías js en nuestro proyecto web, se crea un div y se inicializa a través de una función JavaScript:

http://pastebin.emergya.info/197

Lo complicado viene en la personalización de la herramienta, pues para ello hay que entrar en su funcionamiento que generalmente no resulta trivial y está más cercano a la tecnología que lleva por debajo que a su funcionalidad tal cual.

¿Cómo funciona OpenLayers?

Para comprender cómo funciona OpenLayers hay que introducir elementos básicos tanto de Prototype [1] como de JSON [2].

Prototype es un framework JavaScript que permite trabajar con este lenguaje creando una jerarquía de objetos. Básicamente utiliza un sistema de paquetes parecido a Java a través del directorio base que en producción se comprime en un único fichero js

En el siguiente diagrama se describen las clases básicas de OpenLayers:

http://trac.openlayers.org/raw-attachment/wiki/UML/ClassDiagram_OL2.7RC2...

Map.js: Es el objeto central de OpenLayers y contiene a todos los demás
Layer.js: Cada capa hereda los métodos básicos de esta capa
Control.js: Controles del Mapa. Tienen una relación 1..1 con los handlers y generalmente son los elementos que se suelen personalizar.
Handler.js: Son los manejadores de eventos. Están asociados a los eventos típicos de la web como son: "Click","MouseWheel", "Hover"...

¿Cómo se trabaja?

Siempre que he trabajado con OpenLayers he tomado como referencia las siguientes herramientas:

  • API: La documentación de la última versión de OpenLayers [4] es básica para su uso.
  • Openlayers Examples [5]: Básicamente es un conjunto de demos de las funcionalidades disponibles en OpenLayers.
  • Soporte del equipo de desarrollo: Tanto el trac [6] como la lista de usuarios y desarrollo de OpenLayers [7] están muy activas y contienen gran cantidad de información

Mi recomendación es empezar por los ejemplos buscando la funcionalidad más parecida a lo que se desee, si no se encuentra, pasar al trac y/o a la lista de correo y una vez que se tenga una idea de la línea a tomar apoyarse siempre en la API.

Enlaces

Comentarios

rteijeiro:

Estupenda intriducción. En GPI también tenemos un módulo de Drupal para OpenLayers. A ver si tenemos ocasión de darle uso. Un saludo.

In a world without fences and walls, who needs gates and windows? (Proverbio Opensource)

marias:

No podría haberlo explicado mejor. Es más, no podría haberlo explicado tan bien :P


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.