Le blog francophone consacré
aux technologies Esri

10 projets Open Source Esri que les développeurs doivent connaître

Depuis plus de 2 ans, Esri utilise la plateforme GitHub pour faciliter la collaboration interne autour de certaines projets de développement mais aussi en externe pour partager, en Open Source, le code de nombreux projets liés de près ou de loin à la plateforme ArcGIS. Aujourd'hui, Esri sur GitHub ce sont plus de 600 développeurs qui contribuent à différents projets (internes ou externes) dont plus de 200 sont publics et Open Source. Ces projets sont accessibles, le plus souvent sous Licence Apache Version 2, aux développeurs d'applications géospatiales (web, mobile et bureautique) qui peuvent non seulement exploiter ces codes sources mais aussi contribuer à leur évolution (c'est tout l'intérêt d'avoir choisi une plateforme telle que GitHub). 

Certains d'entre vous connaissent peut-être déjà l'espace GitHub d'Esri pour y avoir téléchargé ArcGIS Viewer for Flex, ArcGIS Builder for FlexArcGIS Editor for OSM ou même des applications très complètes comme Geoportal Server. Vous connaissez peut être aussi cet espace GitHub d'Esri pour y avoir téléchargé un des 26 templates de story maps tels que le Map Tour Template, le Twitter Template ou le Basic Viewer Template.  

Mais cet espace de partage de code proposé par Esri contient bien plus de trésors encore. Je vous propose une liste (plutôt orienté sur les développements web) de 10 projets qu'il me semble importants de connaître.


1. quickstart-map-js

Il s'agit d'un ensemble d'exemples de code simple, basés sur l'API ArcGIS for JavaScript,  qui montrent comment réaliser des tâches de base dans une application web carto/SIG. Par exemple, changer le fond de carte, géolocaliser un lieu ou un adresse, calculer un itinéraire ou encore exécuter une analyse spatiale. Des démos live sont disponibles et permettent de développer rapidement une première application connectée à ArcGIS Online. Si vous ne développez pas en JavaScript, il existe des projets équivalent pour iOS, Android ou encore pour PhoneGap.




2. esri-leaflet

Vous aimez développer avec Leaflet et votre application a besoin d'exploiter des services web ArcGIS (Online ou Server). Ce projet vous fournira les librairies permettant de consommer des fonds de carte, des services fonctionnels, des Feature Services,... d'ArcGIS (Online ou Server) en restant dans le framework Leaflet JS. Si vous avez besoin de faire du geocoding/geosearch avec le service web d'ArcGIS Online, un contrôle spécifique est même disponible. 




3. arcgis-digit-geocoder-js

Besoin d'un widget interactif et contextuel pour proposer un geocoding/geosearch aux utilisateurs de votre application JavaScript. Ce projet propose un contrôle de saisie d'adresse avec auto-completion et prise en compte du contexte géographique à partir du service de géocodage d'ArcGIS Online.


Le projet est accessible ici.


4. bootstrap-map-js

Ce projet permet de construire rapidement des applications web cartographiques à la fois jolies et adaptables aux différents types d'écrans (en Responsive Design). Basé sur le célèbre framework CSS Bootstrap 3.0, ce projet ajoute les fonctionnalités permettant d'intégrer une carte responsive comme l'ensemble des autres éléments d'IHM de votre application HTML5/JavaScript. Avec seulement 2 fichiers (bootstrapmap.js et bootstrapmap.css) vous allez construire une application moderne et exploitable dans tous les contextes des utilisateurs (smartphone, tablette, poste bureautique, ...). Pour les utilisateurs de Bootstrap 2.0, une alternative est proposée par Esri, également en Open Source, avec ce le projet dojo-bootstrap-ui-for-js.


Le projet est accessible ici.


5. terraformer

Un projet vraiment intéressant et qui démontre l'ouverture d'Esri sur les format geospatiaux sur le web. Si avez besoin dans votre application JavaScript de convertir des formats de géométrie Esri JSON ou WKT vers du GeoJSON (et vice-versa), alors ce projet va vous plaire. En effet, ce projet fournit un ensemble de parsers, de méthodes et d'objets pour travailler avec le format GeoJSON. Une API légère GeoStore permet également de stocker, indexer et interroger ces données géographiques. Ces librairies peuvent tout à fait être utilisées coté client (application JavaScript) ou coté serveur (application  NodeJS) Le projet Terraforme dispose de son propre site web sur lequel on retrouve notamment une documentation détaillée et de nombreux exemples.


Le projet est accessible ici.


6. ago-assistant

Dommage que cette application ne soit pas très connue. Si vous disposez d'un compte d'un portail ArcGIS A et que souhaitez transférer des cartes web, des features services ou tout autre ressource vers un autre compte d'un portail ArcGIS B, alors cette application est faite pour vous. Autres exemples de fonctionnalités:
- voir le contenu JSON d'une carte web (pratique pour un développeur)
- permettre la modification d'un chemin d'accès à un des services de vos cartes web
- visualiser les statistiques d'un utilisateur

Cette application tire parti de l'API Rest d'administration des portails ArcGIS (ArcGIS Online ou Portal for ArcGIS). Si des fonctionnalités vous manquent, n'hésitez pas à les développer, vous disposez du code source.


Le projet est accessible ici.


7. Koop

Encore un projet qui montre la démarche d'ouverture d'Esri. En effet, ce projet permet d'exploiter dans les APIs et SDKs de la plateforme ArcGIS, des données ou des services GeoJSON. Par exemple, vous allez pouvoir développer une application NodeJS qui exposera vos propres services en tant que Feature Services Rest ArcGIS et ainsi bénéficier de tout l'écosystème d'applications clientes, de SDKs et d'APIs de la plateforme ArcGIS. Des exemples montrent notamment comment exposer des flux GeoJSON en Feature Servcies ArcGIS mais vous pouvez imaginer l'implémenter sur d'autres sources de données. Un gros potentiel s'ouvre à vous.



Le projet est accessible ici.


8. Geotrigger Editor / Geotrigger Faker

Deux projets qui peuvent être très utiles aux développeurs d'applications de Geofencing basées sur le service de GeoTrigger d'ArcGIS Online. GeoTrigger Editor permet de créer, modifier et supprimer ses zones et ses règles de Geofencing (qui sont stockées sur la plateforme ArcGIS Online) à travers une application web JavaScript. Geotrigger Faker est également une application JavaScript qui permet de simuler le déplacement d'un appareil et ainsi d'envoyer des positions pour tester le service de Geotrigger ArcGIS Online et les actions associées. Disponibles l'unes et l'autres en Open Source, vous pouvez les adapter ou réutiliser leur code pour vos propres développements.



9. gis-tools-for-hadoop

Le projet "GIS Tools for Hadoop" propose une série d'outils permettant d'exploiter la dimension géographique dans des analyses et des traitements de Big Data réalisés dans un système Hadoop. Le projet contient différents composants:
- une API Esri Geometry pour Java permettant le développement de fonctions MapReduce nécessitant l'utilisation de relations spatiales sur les données
- le Spatial Framework for Hadoop qui fournit des classes helper Java pour la sérialisation et désérialisation de données spatiales en JSON. Ce framework propose également des opérateurs spatiaux pour créer des requêtes HQL (Hive).
- les Geoprocessing Tools for Hadhoop qui permettent aux utilisateurs ArcGIS Desktop, à travers des outils de géotraitement, de copier des données à destination (ou à partir) d'un système HDFS, de soumettre des jobs ou encore de transformer des données ArcGIS en JSON (et inversement) pour pouvoir leur appliquer des fonctions de MapReduce.




10. ArcRest

Le projet ArcRest, posté il y a quelques jours à peine, propose une série d'outils en Python pour travailler avec l'API Rest ArcGIS (ArcGIS Online ou ArcGIS Server). es outils permettent par exemple de manipuler un Feature Service (Ajouter, Supprimer, Modifier, Interroger des entités), de télécharger les pièces jointes associées aux entités d'un Feature Service, de publier un document MXD sur ArcGIS Online en tant que Feature Service ou encore d'accéder aux informations relatives à une ressources ArcGIS Online ou ArcGIS Server. 




Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: