Je discutais avec un de mes collègues sur OpenLayers v / s Leaflet. J'ai déjà fait remarquer qu'OpenLayers est une meilleure API si nous souhaitons construire un projet nécessitant une connectivité directe au Geoserver et à PostGIS.
Ensuite, j'ai trouvé Open Data Kit , qui a l'air assez nouveau mais qui offre les fonctionnalités de connectivité avec Geoserver et PostGIS.
Donc, les détails de mon projet sont les suivants:
- Utiliser l'interface de la carte pour récupérer des informations sur les fonctionnalités
- Créez un outil personnalisé qui indique à l'utilisateur où il / elle clique sur la carte, puis récupère les données climatiques du raster (gérées par un script py sur le serveur).
- Permet à l'utilisateur de télécharger Excel, qui est envoyé au script py, qui renvoie un GeoJSON, qui crée des entités vectorielles sur la carte.
- Autoriser l'utilisateur à créer des polygones vectoriels, qui extrairont les entités qu'il intersecte de la couche WFS.
- Récupère les couches à partir du magasin de données PostGIS sur GeoServer et affiche les couches sur la carte.
Alors maintenant, je ne sais plus lequel est le meilleur et pourquoi utiliser OpenLayers plutôt que Leaflet a plus de sens ou pas?
Réponses:
J'ai utilisé OpenLayers et Leaflet dans mes applications. Il y a eu tellement de discussions sur ce sujet dans ce forum et d'autres sur Planet-Internet. Ils se répartissent généralement en deux camps: les fonctionnalités et la flexibilité d’OpenLayers par rapport à la simplicité de Leaflet. Je ne serais pas surpris que quelqu'un lance une initiative "OpenLeaf" mariant bientôt le meilleur des deux mondes!
J'ai trouvé Leaflet très simple à utiliser, une taille réduite de 64 Ko, comparée à plus de 700 Ko Openlayers, et en très peu d'étapes, vous pouvez créer des applications qui ont la fraîcheur et le charme des applications Web et mobiles SIG d'aujourd'hui. Votre pile - GeoServer, PostGIS, etc., est une pile standard, donc OpenLayers ou Leaflet peuvent facilement être intégrés.
Cela dit, j'irais quand même avec OpenLayers pour les raisons suivantes
la source
Dépliant tout le chemin. Je pense que Leaflet est la prochaine étape de l'évolution des clients de navigateur basés sur des tuiles open source. Ka-Map -> OpenLayers -> Leaflet.
Leaflet est simple à utiliser et fait exactement ce qui est écrit sur l'étain. OpenLayers est devenu trop lourd en essayant de plaire à tout le monde. Leaflet accomplit les 20% de tâches requises 80% du temps.
la source
Bien que j'ai utilisé Leaflet dans mon application webGIS, OpenLayers présente bien plus d'avantages que Leaflet. Par exemple, si vous souhaitez utiliser votre application sur des appareils mobiles, OpenLayers est indispensable pour le moment.
Il existe de nombreuses ressources liées à OpenLayers, mais je pense que développer une application avec Leaflet est plus facile que OpenLayers (il est plus facile de lire un code et de comprendre la structure). Si vous avez une limite de temps et avez un peu d'expérience en Javascript, utiliser Leaflet peut être une meilleure solution pour le faire plus rapidement. Ou si vous souhaitez développer une application très simple, Leaflet peut être beaucoup plus facile à adapter au début.
Mais après avoir développé une application avec Leaflet, je dis maintenant que je souhaiterais avoir utilisé OpenLayers au début. Parce que lorsque votre application devient complexe (comme appeler des couches complexes depuis une base de données, développer une application mobile robuste, etc.), Leaflet commence à limiter vos capacités. Je pense donc que passer un peu plus de temps à comprendre et à apprendre la structure d’OpenLayers au stade de l’apprentissage en vaudra la peine.
Comme les détails du projet considérés;
Utilisez l'interface de la carte pour récupérer des informations sur les fonctionnalités:
Leaflet et OpenLayers peuvent parfaitement le faire. Le point ici est d'obtenir les coordonnées de l'événement click et d'envoyer une demande au serveur. Le lien de demande sera le même pour les deux applications.
Créez un outil personnalisé qui indique à l'utilisateur où il / elle clique sur la carte, puis récupère les données climatiques du raster (gérées par un script py sur le serveur):
J'ai moi-même réalisé cela dans Leaflet (j'appelais aussi les données climatiques au passage). Je n'allais pas récupérer les données raster d'un serveur, mais le but ici est de créer un lien de requête, ce qui est facile pour les deux applications. Toutefois, si vous souhaitez sélectionner un polygone à ce stade, il est un peu difficile à atteindre pour Leaflet.
Permet à l'utilisateur de télécharger Excel, qui est envoyé au script py, qui renvoie un GeoJSON, qui crée des entités vectorielles sur la carte:
À peu près la même ligne de travail pour Leaflet et OpenLayers. Je ne peux pas dire lequel est le meilleur.
Autoriser l'utilisateur à créer des polygones vectoriels, qui extrairont les entités qu'il intersecte du calque WFS:
Je n'ai aucune idée des capacités d'édition d'OpenLayers, mais Leaflet a un plugin appelé Leaflet Draw, qui est facile à utiliser et à manipuler les dessins (du côté javascript) une fois le dessin terminé. En outre, Leaflet prend en charge WFS-T si vous souhaitez manipuler les données spatiales sur le serveur WFS. OpenLayers pourrait être meilleur que cela, je ne sais pas.
Récupère les couches à partir du datastore PostGIS sur GeoServer et affiche les couches sur la carte:
Il est clair qu'OpenLayers convient mieux à ce travail, car il est plus facile de connecter un serveur PostGIS.
À propos, il existe une suite d'applications appelée OpenGeo Suite, qui inclut OpenLayers, GeoServer et PostGIS; ce qui résoudra tous les problèmes rencontrés par un développeur d’applications SIG basé sur le Web.
la source
Il existe une excellente comparaison entre les deux cadres de cette présentation :
Et un autre article a aussi un bon résumé:
De http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/
la source
Je viens de prendre cette décision pour mon nouveau projet mobile et le gagnant clair est OpenLayers. Leaflet, au moment d'écrire ces lignes, était plutôt lent sur mobile. Les transitions pour le panoramique / zoom ne se sentaient pas en douceur et cela désorientait parfois. À défaut de devenir natif, j'ai essayé OpenLayers et l'expérience est bien meilleure. Pas aussi bon qu'un natif, mais définitivement utilisable et une vraie option.
la source
Je dirais de vérifier la documentation de l'API pour les deux. Pour moi, cela semble
OpenLayers
offrir une multitude de fonctionnalités, mais le temps de développement / débogage est plus long.Leaflet
C'est plus sexy et beaucoup plus facile que l'OL, cependant si vous voulez faire beaucoup avec votre carte, je pense qu'un jour vous aurez peut-être besoin d'une fonctionnalité qui n'est pas encore implémentéeLeaflet
!Je recommande vraiment de regarder les API! OpenLayers & Leaflet
Vous pourriez aussi avoir besoin de considérer que la version stable actuelle pour la notice est ,
0.5.1
mais il est2.12
pour OpenLayers.PS Si je veux développer une application mobile, je pense pouvoir y aller
Leaflet
.la source
Il existe un didacticiel de base qui compare les API d’OpenLayers 3 et de Leaflet en vous permettant de créer la même chose dans les deux cas. Il est écrit par Astun Technology et les tâches du tutoriel sont les suivantes:
Voici le lien: https://astuntechnology.github.io/osgis-ol3-leaflet/index.html
la source
Cela dépend de ce que vous essayez de faire. Leaflet est plus simple et plus rapide pour 80% des projets de cartes Web.
De la même manière, vous n'avez pas besoin d'un vaisseau spatial pour parcourir votre quartier, mais la plupart du temps, je trouvais OpenLayers trop complexe pour faire des choses très simples, spécialement à partir de la version 3.
Par exemple, la création d'un sélecteur de couche prend peut-être 5 à 6 lignes de code dans Leaflet, tandis que dans OpenLayers 4, vous devez le construire à partir de zéro. Vous disposez d'excellents outils pour le faire, mais la plupart du temps, vous ne voulez pas de sélecteur de calque personnalisé, mais simplement d'un sélecteur de calque qui fonctionne correctement.
Une autre chose importante à considérer est que la plupart des informations, tutoriels et débats sur Internet concernent OpenLayers 2. Ils sont périmés, car la version 3 n'est pas compatible avec la version 2. Et nous en sommes maintenant à la version 4. Version 2 eu beaucoup de choses simples comme le sélecteur de couches, les popups, etc. avec des fonctions plus complexes; mais pour une raison quelconque, ils ont simplement supprimé ce genre de choses afin d'évoluer vers un système complexe et très puissant. En outre, il existe beaucoup plus d'informations sur Leaflet qu'en 2012 et il s'agit d'une technologie plus mature.
En conclusion, demandez-vous si vous avez besoin d'une voiture ou d'un vaisseau spatial. Vous ne volerez pas avec une voiture, mais conduire un vaisseau spatial pour faire du shopping peut être très compliqué.
la source