Tutorial para OpenLayers? [cerrado]


12

Necesito crear un mapa web que muestre muchas capas ráster. Estoy usando Mapserver y quiero usar Openlayers, sin embargo, no puedo encontrar ningún buen tutorial al respecto. Veo un par de viejas preguntas ( 1 y 2 ) que dicen que no había buena documentación. ¿Han cambiado las cosas recientemente?

Me gustaría encontrar un tutorial que enseñe lo básico a cosas bastante complicadas con buenas explicaciones del código e imágenes / ejemplos de los resultados. Por ahora logré hacer solo el mapa web más simple con mi archivo .map , pero necesito personalizarlo (agregar leyendas, capas de grupo, agregar más controles, incrustar, etc.).

Respuestas:


7

Mientras que los demás han sugerido buenos tutoriales en línea, déjenme contarles sobre el libro que me dio una base sólida muy necesaria en OpenLayers.

El libro es: Guía para principiantes de OpenLayers 2.10 de Erik Hazzard. Está disponible en Packt Publishers.

Recomiendo encarecidamente el libro, ya que trata con todas las partes principales de la Biblioteca. Comienza desde lo básico y lentamente lo ayuda a crecer hacia partes complicadas de la API.


2
Está disponible como un libro electrónico desde aquí por £ 14.44 se ve excelente.
Mark Cupitt el

El precio depende del país desde el que accede. Me está mostrando un precio que aproximadamente $ 3;
Devdatta Tengshe

Wow, supongo que en Filipinas nos están penalizando. debería conseguir que lo compre para mí :-)
Mark Cupitt

Gracias por el consejo, acabo de recibir el libro de un amigo, veamos ...
nadya

¿no puedes usar algo como PirateBrowser para ocultar tu país y comprarlo al precio más bajo?
Debajo del radar

13

Además de las excelentes respuestas anteriores, permítanme agregar mi propia experiencia. Hace un año y medio decidí que quería usar OpenLayers (OL) en mi proyecto de maestría y me propuse aprenderlo. He estado haciendo programación y elaboración de mapas digitales como parte de mi trabajo como arqueólogo desde principios de la década de 1980, y he sido usuario de ArcGIS durante 15 años. Estoy feliz de haber elegido OL para mi proyecto, pero no siempre fue fácil aprenderlo. Algunas cosas no eran obvias y se aprendían solo por ensayo y error. Entonces, tengo algunos consejos para principiantes.

Mi viaje aprendiendo OL realmente comenzó cuando me inscribí en una cuenta de estantería de 5 ranuras en Safari Books Online por $ 10 / mes USD. Quería revisar libros antes de comprar, y pocas tiendas que uno puede visitar tienen libros de computadora relacionados con SIG. Ahora hay tres libros en OL 2. Un libro nuevo de 58 páginas llamado Instant OpenLayers Starter por Di Lorenzo y Allegri (abril de 2013) es un buen comienzo rápido, pero los dos primeros libros y sus ejemplos de código (disponibles en la web del editor sitio, junto con un capítulo de muestra gratis de cada libro) fueron buenos recursos:

  • OpenLayers 2.10: Guía para principiantes por Erik Hazzard (marzo de 2011)
  • OpenLayers Cookbook por Antonio Santiago Perez (agosto de 2012)

Debido a frustraciones ocasionales sobre css y la compatibilidad del navegador, también terminé aprendiendo un framework JavaScript. Elijo Dojo porque esto es lo que Pérez usó en su libro. Modern Dojo (Dojo 1.7+) es un enfoque significativamente diferente de las versiones anteriores, utilizando un formato de definición de módulo asíncrono (AMD). La forma de hacer todo cambió. No entendí que este excelente libro utiliza una versión anterior a 1.7 de Dojo que quedó obsoleta 9 meses antes de que el libro fuera publicado en agosto de 2012. Esri continuó usando el Dojo anterior a 1.7 en su API JavaScript ArcGIS hasta que se modernizó en junio de 2012 , y este fue un cambio doloroso para muchos desarrolladores de ArcGIS Javascript.

Para comprender cuán mal respaldado está Dojo, aparte de un libro escrito en 2010 sobre Dojo 1.3, la mayoría de los libros se escribieron en 2007 y 2008. No hay libros publicados para Modern Dojo: debe aprender de los recursos en línea, casi todos que están en su sitio web. Básicamente, para trabajar con los ejemplos en el libro de Pérez, debe saber lo suficiente sobre JavaScript para ignorar los bits de Dojo y mover los ejemplos a JavaScript simple o al marco de su elección.

En retrospectiva, desearía haber ido con el marco ExtJS y GeoExt. ExtJS es gratuito si su proyecto es de código abierto, y dado que muchas empresas pagan felizmente por una versión compatible, pueden permitirse el lujo de pasar tiempo en tutoriales y documentación completa del sitio web.

Aprendo mejor trabajando con / hackeando ejemplos. Los desarrolladores de OpenLayers tienen esta misma filosofía, ya que la documentación principal a la que apuntan para aprender es examinar los ejemplos. Sin embargo, algunos ejemplos OL en su sitio web y en otros lugares tienen problemas que pueden hacer tropezar a los principiantes. (Vea abajo.)

La dependencia de ejemplos como documentación también significa que el usuario no tiene la sensación de un buen flujo de trabajo para desarrollar un mapa web. Esto puede llevar a que los mapas se sientan incompletos; por ejemplo, pueden carecer de personalizaciones CSS para la interfaz de usuario de los mapas y "verse y sentirse". Anular el css OL con personalizaciones se siente desalentador para el principiante, pero Firebug puede ayudarlo a encontrar los nombres de elementos que necesita anular. La falta de una sensación de un flujo de trabajo aceptado también puede conducir a la creación de Frankencode, ya que los usuarios calzan las características de su código cuando encuentran que lo quieren.

Esto me lleva al último elemento que siento que falta en la documentación del sitio OL, una sensación de "mejores prácticas" para los mapas OL. ¿Hay una mejor manera de organizar mi código para que sea modular y robusto? ¿Cuáles son las dificultades con los cierres de JavaScript y los objetos OL? ¿Dónde debo declarar mis estilos? Y así.

Además de los diversos archivos obsoletos en el Wiki, hay dos problemas generales que un principiante debe tener en cuenta al aprender de los ejemplos OL oficiales y los documentos API. Primero, no hay una organización para la página de ejemplos de desarrollo OL en el sitio web OL. Simplemente presenta el feed del archivo xml en ese directorio (example-list.xml) de los ejemplos (207 de ellos al 13 de febrero de 2014) y ordena las filas alfabéticamente por nombre de archivo en una cuadrícula. Los ejemplos más avanzados se mezclan con los básicos. Puede buscar los ejemplos por palabra clave, pero muchos de los ejemplos carecen de palabras clave y la función de búsqueda incluye contenido y título de página en la búsqueda, no solo palabras clave. Los resultados se devuelven con el mayor número de términos de búsqueda que coinciden primero seguidos de la frecuencia de palabras. Solo uno de los términos de búsqueda debe coincidir para aparecer en los resultados. La página UserRecipes en OL Wiki enumera alrededor de 90 ejemplos organizados por categoría, y esta categorización es una ayuda. De estos, 66 son enlaces en vivo a los ejemplos en la página de ejemplos y el resto son enlaces malos a ejemplos eliminados.

En segundo lugar, existen básicamente dos versiones de la documentación de la API que parecen ser las mismas a primera vista. La API oficial se encuentra en un directorio llamado / apidocs y la biblioteca de desarrolladores, pero volátil, está en un directorio llamado / docs. Las URL son iguales de lo contrario. (También hay versiones troncales). Simplemente edite la dirección de la página para ver la otra versión. El Wiki señala que no se debe confiar en la biblioteca del desarrollador ya que las propiedades, funciones, etc. podrían eliminarse de la biblioteca en cualquier momento. Con OpenLayers 3 cerca de la realidad (está disponible en versión beta y hay un libro publicado ahora), sospecho que no cambiará demasiado en OL 2 en el futuro. El foco ahora está en OL 3.

En general, considero que las páginas de la API OL son demasiado esqueléticas, a menudo carecen de explicaciones o ejemplos ilustrativos, especialmente para alguien acostumbrado a bibliotecas con documentación API más completa. La forma en que se presenta no permite obtener una imagen clara del objeto del que hereda.

De los ejemplos OL en la web en general, muchos usan objetos o sintaxis que han quedado en desuso porque han sido reemplazados por versiones mejoradas. Por ejemplo, Layer.Vector es ahora la forma preferida de dibujar marcadores, ya que Layer.Marker está en desuso en la versión 3. Examine el archivo deprecated.js para asegurarse de que no está utilizando objetos que están saliendo. O, al menos, tenga en cuenta que si actualiza su código a OL 3, deberá cambiar esto.

Además del taller Boundless OpenLayers vinculado por Julien-Samuel Lacroix arriba, IBM tiene un tutorial genial, aunque de tres años, que usa OpenLayers, MapServer, Google Gears y jQuery para construir una aplicación web completa de SIG: reunir datos con OpenLayers : Uso de datos de múltiples fuentes divergentes en mapas web

Además, echa un vistazo a esta publicación útil sobre el estilo del conmutador de capas

Busca en Google las palabras OpenLayers y jsFiddle para obtener algunos ejemplos de violines OL. El resultado del sitio techslides es una página que enumera algunos de estos.

Por último, tenga en cuenta que las imágenes del mapa en la mayoría de los ejemplos provienen de servidores OpenStreetMap (OSM) y estas se desactivan de vez en cuando, planificadas o no, y obtendrá mosaicos de color rosa en su lugar. A veces pensarás que arruinaste tu código. Puede verificar el estado de la plataforma en el wiki de OpenStreetMap.


2
Esta es una buena respuesta detallada. Es una pena que no tengamos tantas respuestas de este tipo en el sitio.
Devdatta Tengshe

Leta, gracias por la respuesta! Ahora estoy peleando con GeoExt (y ExtJS), y tiene aún más problemas con los tutoriales que OL, sus ejemplos se ven bastante así :)
nadya


4

Open Layers es un paquete fantástico, increíblemente flexible, pero carece de documentación para principiantes, pero tiene una tonelada de documentación detallada para desarrolladores.

Lo que hice cuando comencé fue mirar todos los ejemplos , elegir los que tenían la funcionalidad que quería, analizar el código y desarrollar la funcionalidad paso a paso, probando a medida que avanzaba. Descubrí que probar demasiada funcionalidad en un solo golpe hacía que fuera más difícil pensar acerca de los conceptos y los problemas de depuración.

Luego encontré GIS @ SE, que ha sido de gran ayuda en temas específicos, ya sea investigando preguntas de otras personas o haciendo las mías.

Aparte de eso, @Julian probablemente te haya dado la mejor opción en términos de tutoriales, son bastante buenos.


Gracias por la respuesta, ya he visto estos ejemplos, pero no pude encontrar lo que necesito. Así que tendré que codificar ...
nadya

2

Solo para mencionar, esta página de OpenGeo también fue útil para mí. Comienzan desde lo básico y tienen un buen ejemplo de eventos GetFeatureInfo con la eliminación de ventanas emergentes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.