Estaba debatiendo con uno de mis colegas en OpenLayers v / s Leaflet. Dije que OpenLayers es una API mucho mejor si deseamos construir un proyecto, donde necesitas conectividad directa con Geoserver y PostGIS.
Luego encontré Open Data Kit , que parece bastante nuevo pero tiene las características de conectividad con Geoserver y PostGIS.
Entonces los detalles de mi proyecto son los siguientes,
- Use la interfaz del mapa para obtener información de la característica
- Cree una herramienta personalizada que tome el lat / lon del usuario en cuanto a dónde hace clic en el mapa y luego recupera los datos climáticos del ráster (que es manejado por un script py en el servidor)
- Permite al usuario cargar Excel, que se envía al script py, que devuelve un GeoJSON, que crea funciones vectoriales en el mapa
- Permitir al usuario crear polígonos vectoriales, que buscarán las características que intersecta desde la capa WFS.
- Obtiene la capa del almacén de datos de PostGIS en GeoServer y muestra las capas en el mapa.
Así que ahora estoy confundido sobre cuál es mejor y por qué usar OpenLayers sobre Leaflet tiene más sentido o no.
Respuestas:
He usado OpenLayers y Leaflet en mis aplicaciones. Ha habido mucha discusión sobre este tema en este foro y otros en el planeta-internet. Por lo general, se dividen en 2 campos: características y flexibilidad de OpenLayers frente a la simplicidad de Leaflet. ¡No me sorprendería si alguien genera una iniciativa "OpenLeaf" que pronto se casa con lo mejor de ambos mundos!
Encontré que Leaflet es muy simple de usar, un tamaño pequeño de 64K, en comparación con más de 700K Openlayers, y en muy pocos pasos puede crear aplicaciones que tengan la frescura y la belleza de las aplicaciones GIS móviles y web actuales. Su pila: GeoServer, PostGIS, etc., es una pila estándar, por lo que OpenLayers o Leaflet podrían incorporarse fácilmente.
Dicho esto, todavía iría con OpenLayers por las siguientes razones
fuente
Folleto hasta el final. Siento que Leaflet es el siguiente paso en la evolución de los clientes de navegador basados en mosaicos de código abierto. Ka-Map -> OpenLayers -> Folleto.
El folleto es fácil de usar y hace exactamente lo que dice en la lata. OpenLayers se ha hinchado al tratar de ser todo para todas las personas, Leaflet hace el 20% de las cosas que se requieren el 80% del tiempo.
fuente
Aunque utilicé Leaflet en mi aplicación webGIS, OpenLayers tiene muchas más ventajas sobre Leaflet. Por ejemplo, si desea utilizar su aplicación en dispositivos móviles, OpenLayers es imprescindible por el momento.
Hay muchos recursos relacionados con OpenLayers, sin embargo, creo que desarrollar aplicaciones con Leaflet es más fácil que OpenLayers (es más fácil leer un código y comprender la estructura). Si tiene un límite de tiempo y tiene un poco de experiencia con Javascript, usar Leaflet podría ser una mejor solución para hacerlo más rápido. O si desea desarrollar una aplicación muy simple, Leaflet puede ser mucho más fácil de adaptar al principio.
Pero después de desarrollar una aplicación con Leaflet, ahora digo que desearía haber usado OpenLayers al principio. Porque cuando su aplicación se vuelve compleja (como llamar a capas complejas desde una base de datos, desarrollar una aplicación móvil robusta, etc.), Leaflet comienza a limitar sus habilidades. Por lo tanto, creo que pasar un poco más de tiempo para comprender y aprender la estructura de OpenLayers en la etapa de aprendizaje finalmente valdrá la pena.
Como se consideraron los detalles del proyecto;
Use la interfaz del mapa para obtener información de la característica:
Tanto Leaflet como OpenLayers pueden hacer eso perfectamente. El punto aquí es obtener las coordenadas del evento de clic y enviar la solicitud al servidor. El enlace de solicitud será el mismo para ambas aplicaciones.
Cree una herramienta personalizada que tome el lat / lon del usuario en cuanto a dónde él / ella hace clic en el mapa y luego recupera los datos climáticos del ráster (que es manejado por un script py en el servidor):
Lo logré yo mismo en Leaflet (por cierto, también estaba llamando a los datos climáticos). No estaba obteniendo los datos ráster de un servidor, pero el punto aquí es crear un enlace de solicitud, que es fácil para ambas aplicaciones. Sin embargo, si desea seleccionar un polígono en esta etapa, es un poco difícil para Leaflet lograrlo.
Permite al usuario cargar Excel, que se envía al script py, que devuelve un GeoJSON, que crea funciones vectoriales en el mapa:
Aproximadamente la misma línea de trabajo para Leaflet y OpenLayers. No puedo decir cuál es mejor.
Permitir al usuario crear polígonos vectoriales, que buscarán las características que intersecta desde la capa WFS:
No tengo idea de las capacidades de edición de OpenLayers, pero Leaflet tiene un complemento llamado Leaflet Draw, que es fácil de usar y manipular los dibujos (en el lado de JavaScript) después de que se complete el dibujo. También Leaflet tiene soporte WFS-T si desea manipular los datos espaciales en el servidor WFS. OpenLayers podría ser mejor que eso, no lo sé.
Obtiene la capa del almacén de datos PostGIS en GeoServer y muestra las capas en el mapa:
Definitivamente OpenLayers es mejor para este trabajo, ya que es más fácil conectar el servidor PostGIS.
Por cierto, hay una suite de aplicaciones llamada OpenGeo Suite que incluye OpenLayers, GeoServer y PostGIS; que resolverá todos los problemas que tiene un desarrollador de aplicaciones SIG basado en la web.
fuente
Hay una gran comparación en los dos marcos en esta presentación :
Y otro artículo también tiene un gran resumen:
De http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/
fuente
Acabo de tomar esta decisión para mi nuevo proyecto móvil y el claro ganador es OpenLayers. El folleto, a partir de este escrito, era bastante lento en el móvil. Las transiciones para paneo / zoom no se sintieron suaves y fue desorientador a veces. Antes de ser nativo, probé OpenLayers y la experiencia es mucho mejor. Todavía no es tan bueno como el nativo, pero definitivamente utilizable y una opción real.
fuente
Yo diría que consulte la documentación de la API para ambos. Para mí, parece que
OpenLayers
ofrece una gran cantidad de características, sin embargo, el tiempo de desarrollo / depuración es más largo.Leaflet
es más sexy y mucho más fácil que el OL, sin embargo, si desea hacer mucho con su mapa, creo que algún día podría necesitar una función queLeaflet
aún no está implementada .¡Realmente recomiendo echar un vistazo a las API! OpenLayers & Leaflet
También es posible que deba considerar que la versión estable actual para Leaflet es
0.5.1
pero es2.12
para OpenLayers.PD: si quiero desarrollar una aplicación móvil, creo que podría hacerlo
Leaflet
.fuente
Hay un tutorial básico que compara las API de OpenLayers 3 y Leaflet al hacer que construyas lo mismo en ambos. Está escrito por Astun Technology y las tareas del tutorial son:
Aquí está el enlace: https://astuntechnology.github.io/osgis-ol3-leaflet/index.html
fuente
Depende de lo que estés tratando de hacer. El folleto es más simple y rápido para el 80% de los proyectos de mapas web.
De la misma manera que no necesita una nave espacial para recorrer su vecindario, la mayoría de las veces me pareció que OpenLayers era demasiado complejo para hacer cosas realmente simples, especialmente de la Versión 3.
Por ejemplo, la creación de un selector de capas requiere entre 5 y 6 líneas de código en Leaflet, mientras que en OpenLayers 4 debe crearlo desde cero. Tienes herramientas increíbles para hacerlo, pero la mayoría de las veces no quieres un selector de capas personalizado, solo uno que funcione bien.
Otra cosa importante a tener en cuenta es que la mayoría de la información, tutoriales y debates en Internet son sobre OpenLayers 2. Están desactualizados, ya que la Versión 3 no es compatible con la Versión 2. Y ahora estamos en la Versión 4. Versión 2 tenía muchas cosas simples como selector de capas, ventanas emergentes, etc. junto con funciones más complejas; pero por alguna razón, simplemente eliminaron ese tipo de cosas para evolucionar hacia un sistema complejo y muy poderoso. Además, ahora hay mucha más información sobre Leaflet que en 2012, y es una tecnología más madura.
Como conclusión, pregúntese si necesita un automóvil o una nave espacial. No volarás con un automóvil, pero conducir una nave espacial para ir de compras puede ser realmente complicado.
fuente