19 avril 2014

Le samedi, c'est Map Story !


Le plus connu des écrivains latino-américains Gabriel García Márquez s'est éteint ce jeudi à 87 ans cette semaine. Né en Colombie en 1927, ce romancier, nouvelliste et journaliste est l'auteur du célèbre roman "Cent ans de solitude" et fut prix Nobel de littérature en 1982. Il restera aussi connu pour un activiste politique controversé en s'opposant à la dictature chilienne du général Pinochet et assumant son soutien au régime de Fidel Castro. La carte que j'ai retenue cette semaine lui est donc consacrée avec cette Story Map réalisée par mes collègues d'Esri Colombie qui reprend les principaux éléments de sa biographie sous l'angle géographique. 






Techniquement, cette application ArcGIS Online est directement basée sur le modèle d'applicaiton "Map Tour".


17 avril 2014

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. 




Séminaire en ligne "Travailler en connecté/déconnecté avec Collector for ArcGIS"

Si vous disposez d'un portail ArcGIS (ArcGIS Online ou Portal for ArcGIS), chaque utilisateur nommé peut accéder gratuitement à différentes applications ArcGIS permettant d'exploiter les ressources géographiques du portail de votre organisation. C'est cas par exemple de l'application Collector for ArcGIS disponible sur iOS et Android. Cette dernière vous permet de collecter ou de mettre à jour des données géographiques (géométries, attributs, photos, ....) sur le terrain à l'aide d'une tablette ou d'un smartphone. Depuis la version 10.2.2 de Collector for ArcGIS, vous ne devez plus nécessairement être connecté en permanence à vos services pour pouvoir consulter, collecter ou modifier vos données dans votre application mobile. 



Pour bien comprendre comment fonctionne le processus de collecte en mode connecté/déconnecté avec Collector for ArcGIS, Esri propose ce soir un séminaire en ligne gratuit que je vous recommande. Rendez-vous à 18h ou 20h (heure française) ce jeudi 17 avril pour cette session qui dure environ une heure. Toutes les informations sont disponibles sur cette page, il suffit de disposer de votre global account Esri.

16 avril 2014

ArcGIS 10.2.2 est disponible (en version anglaise)

Comme annoncé en début d'année par Esri, ArcGIS 10.2 continue sa roadmap avec une version 10.2.2 déjà disponible depuis mars pour les SDK ArcGIS Runtime d'ArcGIS et maintenant disponible pour les autres solutions de la plateforme. 
  
  
Pour l'instant en version anglaise (la version française arrivera fin mai 2014), cette nouvelle mouture concerne les produits suivants:
  • ArcGIS for Desktop, 
  • ArcGIS Engine, 
  • ArcGIS for Server (y compris Portal for ArcGIS), 
  • ArcGIS for INSPIRE, 
  • ArcGIS for Maritimes, 
  • ArcGIS for Aviation, 
  • Esri Defense Mapping, 
  • Esri Production Mapping,
  • Esri Roads and Highways.
Il s'agit essentiellement d'une version corrective (voir ici la liste des bugs corrigés) et introduit des évolutions mineurs décrites dans l'aide en ligne (rubrique What's new in ArcGIS 10.2.2). Je décrirai certaines de ces évolutions pour ArcGIS Server et Portal for ArcGIS à travers différents articles dans les prochains jours. 

Vous pouvez dès maintenant télécharger les médias à partir du portail client Esri (Customer Care Portal).
 

15 avril 2014

La vision "Open Platform" selon Esri

Même si la démarche n'est pas nouvelle pour Esri, l'ouverture de la plateforme ArcGIS a été un des thèmes qu'Esri a largement développer pour expliquer sa vision et sa stratégie auprès des participants à l'EPC (Esri Partner Conference) et du Developer Summit qui ont eu lieu à Palm Spring le mois dernier. L'occasion pour moi de reprendre les points clés de cette vision "Open Platform".

 Image © Micah Solomon – micah@micahsolomon.com

Une démarche d'ouverture qui n'est pas nouvelle pour Esri

Depuis longtemps, Esri a une stratégie d'ouverture dans ses développements avec pour objectif de proposer un maximum d'interopérabilité entre ses solutions et les autres composants des systèmes géospatiaux. Cela a commencé en 1995 avec la publication du format du Shapefile, format qui depuis est utiliser largement dans les outils en particulier les outils Open Source. L'implémentation des spécifications OGC Simple Feature dans toutes les déclinaison des Géodatabases Enterprise a également été un moteur pour le développement des bases de données spatiales et encore largement utilisé aujourd'hui. Depuis, les travaux de l'OGC ont permis de progresser dans l'interopérabilité des services web et Esri implémente ces standards dès lors qu'elles sont utiles et structurants pour ses utilisateurs. C'est le cas avec les services W*S mais aussi avec des formats de fichier plus récents comme le GeoPackage OGC. D'autres démarches ont consisté par exemple à fournir une API autour de la File Géodatabase, format plébiscité par les utilisateurs d'ArcGIS (car très performant et riche en terme de modèle de données) mais nécessitant de pouvoir être généré par des solutions non Esri (comme GDAL par exemple).

Aujourd'hui, Esri continue à avancer dans sa démarche d'ouverture en multipliant les initiatives Open Source. C'est par exemple le cas avec Geoportal Server une solution Open Source qui permet la mise en place d'un portail de gestion et de diffusion de métadonnées aux normes FGCD/OGC et compatible avec les spécifications de la directive INSPIRE. On pourrait également évoquer la publication en Open Source des modèles d'applications web (JavaScript, Flex ou Silverlight) disponibles sur ArcGIS et permettant l'accès à différents types de services web géospatiaux y compris des services non Esri. Autre exemple intéressant, celui du projet GIS Tools for Hadoop qui permet le stockage et le traitement de données spatiales dans le framework Big Data "Hadoop".

Esri devient-il un éditeur Open Source ?

Aujourd'hui, de toute évidence, l'approche exclusive "Open Source" ou "Propriétaire" pour construire son SIG, constitue rarement la meilleure solution. Les enjeux du choix de l'un ou de l'autre sont souvent plus philosophiques ou culturels que techniques ou économiques. Les expériences montrent que les coûts d'une approche "Open Source" ou d'une approche "Propriétaire" sont comparables, ils ne se répartissent tout simplement pas sur les mêmes postes et selon les mêmes calendriers.

La stratégie souvent gagnante aujourd'hui consiste à avoir une approche plus hybride, c'est à dire tirant à la fois partie des aspects collaboratifs et propices à l'innovation que constitue une démarche Open Source mais aussi de la cohérence, de la simplicité et de la pérennité d'une approche propriétaire. Esri ne devient pas un éditeur Open Source mais propose, pour certains projets, une démarche de code libre et ouvert quand cela a du sens. 

Au delà de l'Open Source, implémenter une plateforme ouverte, ça veut dire quoi ?

La question qui se pose aujourd'hui n'est plus vraiment celle de l'Open Source vs. Propriétaire. En effet, pour la plupart des organisations, ce qui compte ce n'est pas de savoir que le code source de leur application est ouvert (la plupart des utilisateurs ne modifieront jamais le code source de leur solution). Ce qui compte c'est que la plateforme soit "ouverte", c'est à dire qu'elle facilite les échanges avec le reste de son organisation, avec ses partenaires et avec les citoyens. Une plateforme ouverte c'est une plateforme qui va permettre aux développeurs de construire des applications, de développer des usages et donc de la valeur ajoutée à cette plateforme.

Ce qui est donc intéressant, c'est de voir concrètement comment les éditeurs de solutions géospatiales implémentent des plateformes ouvertes. Pour Esri, c'est assez simple cela passe par plusieurs axes, dont l'Open Source n'est qu'un des piliers.


Open Standards: c'est l'axe qui consiste pour Esri à implémenter les normes et les standards du marché pour rendre la solution la plus interopérable. Qu'ils s'agissent de protocoles (HTTP(S), TCP/IP, WebSocket, SAML, LDAP,… ), de formats de données (SQL, DWG/DGN, NetCDF, GML, GeoJSON, GDAL Raster,…), de métadonnées (OGC, ISO, INSPIRE, FGDC,…) ou de services web (UDDI, WSDL, Rest/JSON, OGC W*S). Dans ce domaine, Esri a démontré son engagement depuis de nombreuses années. Dans les exemples récents on citera l'ouverture des fonds de cartes ArcGIS Online la semaine dernière en WMTS, ou encore le support dans quelques semaines (en 10.2.2) du standard OGC GeoPackage 1.0 qui vient tout juste d'être finalisé.

Open Data: c'est l'axe qui consiste pour Esri à fournir à des outils permettant à ses utilisateur d'ouvrir facilement leurs données au plus grand nombre. Cela a commencé avec GeoPortal Server pour la diffusion de catalogue de données et services ouverts OGC, puis ArcGIS Online pour une diffusion vers des utilisateurs moins spécialistes et enfin dans quelques semaines avec ArcGIS Open Data qui étendra ArcGIS Online et facilitera encore la publication de données Open Data.

Open Content: c'est l'axe qui consiste pour Esri à fournir des contenus (guides, leçons, données, logiciels,…) gratuitement et sous licence Creative Commons pour permettre à tous d'apprendre et développer ses connaissances. Chez Esri cela se traduit par le programme Education Community.

Open Source: c'est l'axe qui consiste pour Esri à publier des projets de développement qui exploite ou enrichisse la plateforme. L'objectif est de permettre à une communauté de développeurs de plus en plus importante de disposer de briques riches qu'ils peuvent s'approprier et adapter à leurs propres métiers pour mieux exploiter la plateforme ArcGIS. Tout cela, via une plateforme collaborative (GitHub) dans un mode contributif. Il s'agit pour Esri d'une démarche relativement récente (un peu plus de 2 ans) mais qui se révèle structurante pour Esri et très appréciée par la communauté des développeurs. Elle va donc continuer à s'accélérer dans les années à venir. 

On doit ajouter à ces 4 axes, un dernier qui en découle naturellement à savoir celui des partenaires. Une plateforme ouverte c'est une plateforme autour de laquelle se construit un écosystème riche d'applications et donc de partenaires. Autour de cette plateforme les intégrateurs, les développeurs de solutions métiers, les fournisseurs de contenus, ... apportent de la valeur ajoutée pour les utilisateurs. Cet aspect est primordial et prouve, à lui seul, le caractère ouvert d'une plateforme géospatiale.




Conclusion

Il n’existe pas un seul chemin à l’ouverture. Ce qui importe dans le concept même d’ouverture c'est l’ouverture d’esprit. Savoir faire bouger les lignes pour accueillir de nouveaux acteurs, de nouvelles démarches, de nouvelles manières de faire,... c'est ce que fait aujourd'hui Esri. L’ouverture, c’est aussi de laisser le temps au temps pour que cette évolution du positionnement d'Esri au sein des communautés Open Source prenne tout son sens.

Sur le sujet des projets Open Source d'Esri, je n'ai jamais véritablement abordé le sujet dans arcOrama. Dans un prochain article je reviendrai, concrètement et sous un angle plus technique, sur les différentes initiatives Open Source d'Esri et en particulier sur quelques uns des 200 projets publiés sur GitHub.