Material de introducción a OpenLayers

Recientemente he tenido el placer de participar como profesor dentro de la primera edición del curso Experto en Desarrollo y Gestión de Sistemas de Información Geográfica de la Universidad de Cantabria.

El módulo que impartí era una introducción rápida a OpenLayers. La mayoría de los alumnos eran geógrafos, pero también había biólogos, historiadores, sociólogos… sin una base previa de programación pero con interés en aprender.

OpenLayers

Cuelgo a continuación el documento de apuntes que se les entregó a los alumnos para apoyar y complementar los ejercicios prácticos hechos en clase.

Apuntes ‘Curso OpenLayers’

El documento pretende recoger los fundamentos básicos útiles (sobre neogeografía, mashups, html, javascript…) para que una persona sin conocimientos previos de programación se sienta cómoda al empezar a trabajar con OpenLayers.

Saludos y que sea útil.

Nota (15-06-2013): Estos materiales han sido revisados y ampliados, ver la entrada

15 comentarios en “Material de introducción a OpenLayers

  1. Victor dijo:

    Excelente documento para los que nos queremos iniciar en el mundo de los sig y la programación.

    el curso tiene muy buena pinta, si el resto de la materia esta colgada en algún sitio para echar un vistazo agradeceria saberlo.

    mis felicitaciones y gracias por compartirlo,

    • Víctor Velarde Gutiérrez dijo:

      Hola tocayo. Este material lo comparto individualmente, en calidad de autor y profesor de la asignatura de OpenLayers. El resto de asignaturas tienen sus profesores, que han elaborado sus respectivos materiales, así que es decisión suya la licencia que otorgan a documentos, ejercicios… y si deciden difundirlos. No obstante, si aparece nuevo material disponible para descarga relacionado con este curso, colgaré los enlaces en este blog. Saludos.

      • Juanjo dijo:

        Hola Víctor!!

        Felcidades por el documento y gracias por difundirlo.
        Veras, me estoy aventurando en el tema de openlayers y servidores. Tengo nociones por mi titulacion, pero me he topado con un problema nada mas emepezar.

        Parto de una plantilla que define la proyección (entiendo que de los capas planteadas,OSM y google) y tambien define la proyección en pantalla:
        ….
        function init() {
        var options = {
        projection: new OpenLayers.Projection(«EPSG:900913»),
        displayProjection: new OpenLayers.Projection(«EPSG:4326»),
        };

        he añadido de momento la conexion wms de las ortos de mi comunidad dadas en EPSG: 25830.
        Mi pregunta es; ¿ dada la diferencia de proyección entre unas y otras debo hacer alguna transformación de la añadida por mi o ya con la definición del sistema del display ya es suficiente?

        Gracias!!

      • Víctor Velarde Gutiérrez dijo:

        Hola Juanjo,

        La definición del display no es suficiente. La cuestión es que OpenLayers no ‘reproyecta’ al vuelo imágenes ráster, como las que vienen de los servicios de mapa de Google o los WMS. Cuando indicas ‘displayProjection’, se refiere a cuestiones como el formato numérico de las coordenadas en pantalla (en controles como el MousePosition) y no a las imágenes en sí, que siguen estando en EPSG:900913. Por ello, si quieres añadir una capa WMS externa, ésta debería estar en el mismo sistema de coordenadas que tu mapa base.

        Con OpenLayers sí podrías, eso sí, reproyectar al vuelo vectores (p.ej. datos provenientes de un WFS o en GeoJSON). Convertir coordenadas entre los EPSG 900913 y 4326, OL lo incluye «de serie», pero si quieres manejar otros sistemas como el EPSG 25830, entonces has de recurrir a un complemento que se integra bien con OL como la librería proj4js: http://trac.osgeo.org/openlayers/wiki/Documentation/Dev/proj4js

        Saludos,

      • Juanjo dijo:

        Gracias Victor!!
        Aunque ahora se me presenta otra duda ademas de un problemilla con el zoom a mi capa que ahora de repente esta limitado y ayer no…

        A ver si me explico bien. Mirando la info que me has pasado he definido la proyección de la capa de la siguiente forma:

        var Orto05 = «http://terramapas.icv.gva.es/ortoactual»;
        var wmsicv = new OpenLayers.Layer.WMS(«Ortofoto ODCV05-Año 2010», Orto05, {layers: «Ortofoto_Actual_2010»,
        projection: new OpenLayers.Projection(«EPSG:25830»),visibility:true,transparent: false, format: «image/png»});

        Y mi duda es si asi es correcto o debo definir esa proyección en el mismo fragmento de código que defino la proyección del display y donde también se define la proyección de OSM y google.

        Si quieres te puedo hacer llegar elarchivo completo por si no entiendes bien que te comento.

        Muchas gracias!!

      • Víctor Velarde Gutiérrez dijo:

        Juanjo, como te dije no puedes mezclar google u OSM con una capa WMS en otro sistema de referencia en el mismo mapa.

        Hasta donde yo sé no es posible sin hacer una reproyección del WMS antes de cargar la capa en OpenLayers.

        Para cuestiones sobre OpenLayers similares a esta, te recomiendo que revises / participes en 2 listas de correo: la de usuarios de OpenLayers (http://lists.osgeo.org/mailman/listinfo/openlayers-users/) y la del capítulo osgeo hispano (http://lists.osgeo.org/mailman/listinfo/spanish)

        Saludos,

  2. Javier Quispe dijo:

    Excelente documento para los queremos iniciarnos en Openlayers. Muchas gracias por brindar tus conocimientos a la comunidad. Me gustaria conocer si pudieras publicar segun indicas en los apuntes: por cada ejercicio proporcionas un documento-guia y los ficheros necesarios asi como las soluciones-tipo relacionadas.
    Con el fin de seguir mas de cerca el manual publicado.

  3. Javier Quispe Varillas dijo:

    Saludos Victor
    Gracias por tu respuesta.
    Tengo un inconveniente. Tengo un mapa en openlayers cargando una capa WFS. Necesito la herramienta «Informacion» para poder visualizar los atributos de un objeto que clickeo en la capa WFS, similar a un GIS Desktop.
    Podrias remitirme algun codigo que me funcione o algun link donde pueda ayudarme.
    Un abrazo

    • Víctor Velarde Gutiérrez dijo:

      Hola Javier,

      Tal y como te comentan por la lista de correo de osgeo, los datos de un servicio WFS que viajan desde el servidor hacia tu cliente incluyen la geometría y los atributos y te dejan montar un popup a partir de ellos.

      P.ej aquí montan un popup a partir de un wfs de terremotos (aunque refieren un problema en el constructor del popup -y luego le contestan sobre la invocación correcta-). Creo que te podría inspirar para lo que necesitas:

      http://osdir.com/ml/gis.openlayers.user/2008-02/msg00160.html

      Saludos

Deja un comentario