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.