arcgis pour les développeurs - sig 2013 · sig 2013. atelier technique. objectifs de la session...
TRANSCRIPT
SIG 2013. Atelier technique.
Atelier Technique
SIG 2013 – Conférence Francophone 2 & 3 Octobre | Versailles
ArcGIS pour les développeurs
Patrice Freydière
Fabrice Leray
SIG 2013. Atelier technique.
Objectifs de la session
• Présentation générale des solutions de
développements autour de la plateforme ArcGIS
• SDK
• API
Titre de la session
SIG 2013. Atelier technique.
Agenda
• Introduction
- Les familles de SDK
- Runtime
• Outils de développements
- SDK Mobiles
- SDK Desktop
- SDK Server
- SDK Web
- SDK GeoEvent Processor
- Community SDK
ArcGIS pour les développeurs
SIG 2013. Atelier technique.
Familles de SDK (1)
Titre de la session
Runtime
Android
WPF IOS
OS X
Windows Phone Java
QT
Windows Store
WEB
Flex
3.5
SilverLight
3.1
Javascript
3.7
SIG 2013. Atelier technique.
Familles de SDK (4)
Titre de la session
ArcObjects
ArcGIS Engine
ArcGIS SDK for
Desktop
ArcGIS SDK for
Server
Produit
Windows Mobile
GeoEvent
Processor
…
SIG 2013. Atelier technique.
API Runtime
Locale
- LocalMap ..
Sémantique - API Web - Runtimes
Titre de la session
WEB
-Map
-Layers
-Geoprocessing
-Editing
-Geometry
-Symbols
-Portal
-Items WebMap
-…
Core Runtime
(C++ / Arcobjects)
(fonctionnalités dépendantes du
SDK)
ArcGIS Online
Portal for ArcGIS
ArcGIS Server
SIG 2013. Atelier technique.
ArcGIS Runtime Mobile - SDK Construisez des applications pour les mobiles
• Natifs plateforme
• Intégrés à la platforme ArcGIS (Online / Portal / Server)
• SDK efficaces basés sur la sémantique des api WEB
(simples), utilisant des widgets plateforme natifs
• Plateforme :
- IOS (Objective C / Cocoa / Touch)
- Android (Java)
- Windows Phone (.NET / XAML / Windows)
- QT (C++, Windows / Linux)
Titre de la session
SIG 2013. Atelier technique.
ArcGIS Runtime Mobile - SDK
• Nouveautés 10.1
- Support WMS / KML / OSM Layer
- WebMaps – Portal
- Routing Task
- À Venir (Octobre 10.2)
- Edition déconnectée – Synchronisation
- Support de géotraitements offline (eg : Routing)
Titre de la session
SIG 2013. Atelier technique.
ArcGIS Runtime SDK - Desktop Construisez des applications légères et performantes pour le poste
de travail
• Natifs Plateforme (Hardware Accelerated)
• Edition locale + Geoprocessing local
• SDK WPF (Windows)
• SDK Java (Windows/Linux)
• SDK Qt (Windows / Linux)
• SDK MacOS X - Nouveau
Titre de la session
SIG 2013. Atelier technique.
Particularité ArcGIS Runtime for Desktop
GIS Runtime = Petit ArcGIS Server Local
Core Runtime
API REST / HTTP
API WEB ++ (Java / WPF)
Application
Http
SIG 2013. Atelier technique.
ArcGIS Runtime SDK – Nouveautés 10.2 Windows Store
• Runtime for Windows Store
- Windows 8
- Construire des applications pour Windows Store
- Plateformes x86, x64 ou ARM
Titre de la session
http://esriurl.com/winstore
SIG 2013. Atelier technique.
ArcGIS Runtime SDK MacOS – Nouveautés 10.2
• Runtime for MacOS X
- Construire des applications cartographiques natives
pour Mac OS X
Titre de la session
SIG 2013. Atelier technique.
• SDK pour créer des applications Desktop SIG centrique
• Basé sur l’API ArcObjects.
• Support de plusieurs langages de développements (Java,
.Net)
SDK Desktop / ArcGIS Engine
SIG 2013. Atelier technique.
• Depuis la 10.0 sont apparus les add-ins Java, .Net puis Python.
• But de ces développements : personnalisation des clients ArcGIS
Desktop ArcMap et ArcCatalog :
- ajout de fonctionnalités avancées (extensions à ces clients lourds)
- Développement de macros métier (pour les tâches répétitives => optimisation de
workflows : suite de géo traitements spécifiques par exemple)
• Outils à disposition :
- Composants d’IHM (boutons, outils (ToolBox), combobox, menus contextuels, barre
d’outils,…)
- Accès à l’API ArcObjects (.Net et Java)
- API tierces
• IDE de développement : Visual Studio 2010 (2012 pour 10.2
seulement), Eclipse (Java), PyDev (Python)
SDK Desktop / Les add-ins
SIG 2013. Atelier technique.
SDK Serveur
• Permet de créer des géo traitements :
- Hébergés sur ArcGIS Server
- Exposant sur une interface REST ou SOAP
- Facilité de déploiement et de mise à l’échelle
• 2 solutions de développement pour ces géo traitements
- Géo traitements issus de ceux développés pour ArcGIS Desktop
- Géo traitements basés sur un développement de type Server Object
Extension (accès à toutes les fonctionnalités de l’API ArcObject)
ArcGIS pour les développeurs
ArcGIS Servers
-Géo traitements
(model Builder,
Python)
- SOE
HTTP
SIG 2013. Atelier technique.
SDK Serveur / services de géo traitements
• Repose sur les géo traitements Desktop :
- Accès à la boîte à outils (Toolbox) ArcGIS Server
- Model Builder
- Code extensible avec un développement Python spécifique*
• Avantages :
- Facilité de codage => permet de tester rapidement un algorithme
- Aucune compilation => facilement modifiable
• Limitation :
- Consommation mémoire importante si utilisation intensive => préférer le second
mode d’implantation basée sur les SOE
- Accès à un sous-ensemble fonctionnel : outils (toolboxes) utilisant les ArcObject.
- Interface REST uniquement
• Type d’exécution:
- Synchrone : le client attend la fin de l'exécution de la tâche par le serveur.
- Asynchrone : le client peut effectuer d'autres travaux pendant que le serveur exécute
la tâche.
ArcGIS pour les développeurs
SIG 2013. Atelier technique.
• Du code spécifique* peut être ajouté pour enrichir les fonctionnalités
offertes par les Toolboxes (rajout des tests conditionnels, boucles,
utilisation d’autres API externes Python…
Ce code Python peut être :
• soit écrit intégralement from scratch
• soit injecté dans un code produit par Model Builder
- Via Model-> Export -> To Python Script
ArcGIS pour les développeurs
SDK Serveur / services de
géo traitements – mise en œuvre
SIG 2013. Atelier technique.
SDK Serveur / services de géo traitements Didacticiel associé :
http://resources.arcgis.com/fr/help/main/10.1/index.html#//0057000
00042000000
ArcGIS pour les développeurs
SIG 2013. Atelier technique.
SDK Serveur / Server Object Extension
(SOE)
ArcGIS pour les développeurs
• Repose sur :
- Accès à la boîte à outils (Toolbox) ArcGIS Server
- La librairie ArcObject
- Langages supportés : .Net, Java
• Avantages :
- Accès intégral à la librairie ArcObject
- Possibilité de debugger les dév. (Java & .Net)
- Exposition d’une interface REST ou SOAP
• Limitation :
- Aucune : les SOE ont accès à toutes les fonctionnalités portées par les
ArcObject ESRI
• Type d’exécution:
- Synchrone : mode par défaut.
- Asynchrone : une implémentation spécifique peut émuler ce mode (HTTP
polling coté client + code serveur).
SIG 2013. Atelier technique.
SDK Serveur / SOE – mise en œuvre
ArcGIS pour les développeurs
• Suivant le langage choisi, installer le plugin de
développement fourni avec ArcGIS Server (SDK) :
• SDK Java (plugin Eclipse)
• SDK .Net (plugin pour Visual Studio)
• Interfaces à respecter :
- Suivant le type d’interface web (REST ou SOAP), le SOE doit
implémenter les interfaces adhoc.
- Possibilité de debugger les dév. (Java & .Net)
SIG 2013. Atelier technique.
• Problématique lié au débogage :
- Le SOE s’exécute dans un process lancé par AGS (pas de main)
- Nécessité d’attacher le débugger au process lançant ce service.
- Possibilité de debugger les dév. (Java & .Net) :
- Java :
http://resources.arcgis.com/en/help/main/10.2/index.html#/Debugging_a_server_object_exten
sion/015400000545000000/
- .Net : http://resources.arcgis.com/en/help/arcobjects-
net/conceptualhelp/index.html#//000100000pn6000000
SDK Serveur / SOE – débogage
ArcGIS pour les développeurs
SIG 2013. Atelier technique.
SDK Serveur / Mauvaises raisons pour un
développement serveur
ArcGIS pour les développeurs
• Bien que les développements côté serveur soient possibles,
les récentes versions d’ArcGIS Server apportent un ensemble
de fonctionnalités serveur de haut niveaux dont il faut
privilégier l’usage :
- Changement du rendu de couches => utiliser les dynamic layers
- Edition Web => utiliser les feature services
- Logique de géo traitements métiers « basiques » => utiliser les outils de
la boîte à outils (Model Builder et scripts Python)
- Fonction de calcul géométriques => Utiliser le geometry service d’ArcGIS
Server.
- Impression haute qualité => Utiliser le PrintingTools service d’ArcGIS
Server.
SIG 2013. Atelier technique.
• Les API Web (JavaScript, Flex, Silverlight) reposent toutes
sur une architecture de type REST :
- pas de gestion des états,
- chaque URL désigne une ressource unique.
Ex. d’appel HTTP utilisant l’architecture REST : - http://localhost:6080/arcgis/rest/services/MyServices/nuts93/MapServer/export?dpi=96&transparent=tr
ue&format=png8&bbox=-
2921001.799268956%2C3250058.598209275%2C6654196.027668955%2C9617754.38628162&bboxSR=
102100&imageSR=102100&size=1012%2C673&f=image
ArcGIS Server
SDK Web / Fonctionnement des API
ArcGIS pour les développeurs
Client web
API Web : JS, Flex, Silverlight
API REST API SOAP
HTTP
SIG 2013. Atelier technique.
• Les API Web sont des briques logicielles de haut niveau
définissant des classes d’objets et réalisant des requêtes sur
AGS ou AGOL.
• Les API Web permettent :
- Web mapping (map service : export)
- Web editing (feature service : add/delete/update)
- Interrogation de couches (query, identify)
- Authentification sur le Portal (AGOL ou ArcGIS for Portal)
- …
- Autres appels serveur (AGS ou autre) via leurs API clientes HTTP
respectives (esri.request (JS), URLLoader/HTTPService (Flex),…)
• Elles proposent toutes des mécanismes de communication
client/serveur basés sur des requêtes asynchrones :
- Mise en place de callbacks pour JavaScript/HTML (Ajax), Flex et
Silverlight
SDK Web / Fonctionalités des API
ArcGIS pour les développeurs
SIG 2013. Atelier technique.
SDK Web / API JavaScript
ArcGIS pour les développeurs
• Repose sur :
- Le framework JavaScript Dojo lui-même basé sur :
- Dojo (noyau),
- Dijit (surcouche de Dojo contenant des widgets graphiques)
Par exemple, la classe esri.Map est un widget basé sur Dojo.
- Dojox (projets expérimentaux à vocation à être intégrés vers Dojo/Dijit si
poussés par la communauté et stables)
- Existe sous 2 formes :
- Mode « legacy » : mode synchrone et utilisation du mot-clé dojo.require
- Mode AMD (Asynchronous Module Definition) : le module et ses dépendances
sont alors chargés de manière asynchrone (gain de perf, meilleure isolation) Cf.
https://github.com/amdjs/amdjs-api/wiki/AMD
- Peut être référencé sur js.arcgis.com
- ou sur un serveur web local (API téléchargeable sur
http://www.esri.com/apps/products/download/):
• Documentation:
- https://developers.arcgis.com/en/javascript/
- http://proceedings.esri.com/library/userconf/devsummit13/papers/devsummit-052.pdf
<link rel="stylesheet" href=" http://js.arcgis.com/3.7 /js/css/esri.css">
<script src="http://js.arcgis.com/3.7/"></script>
SIG 2013. Atelier technique.
SDK Web / Créer ses propres widgets Dojo
ArcGIS pour les développeurs
• Dojo est extensible et permet à chaque développeur de créer son
propre widget:
- Extension des composants graphiques Dijit
- Mécanisme classique d’héritage de la classe dijit/_WidgetBase
• Documentation :
- http://dojotoolkit.org/reference-guide/1.8/quickstart/writingWidgets.html
• Démo :
- http://driskull.github.io/arcgis-dijit-sample-js/
SIG 2013. Atelier technique.
SDK Web / Les composants RIA Flex et
Silverlight
ArcGIS pour les développeurs
• Composants RIA dont l’architecture est très proches et présentant
de nombreux avantages:
- Les plugins dans le navigateur, sortes de mini machine virtuelles
permettant de lancer des composants clients riches pour une expérience
utilisateur proche d’un client lourd.
- Portabilité multi navigateurs et multi OS jusqu’alors !
- Langage : séparation de la partie vue (xaml vs mxml) de la partie « code
behind » (action script versus C# ou VB).
- Facilité de codage : langage objet et manipulation de balises XML.
• Inconvénients majeurs :
- Perte de portabilité avec l’arrivée des périphériques mobiles (tablettes,
smartphones) : les plugins sont de moins en moins supportés partout.
- Revival du JavaScript qui concurrence fortement ces 2 technologies
(framework Dojo, JQuery… offrant de bonnes performances) et assure
une meilleure portabilité.
SIG 2013. Atelier technique.
SDK Web / Les frameworks Flex et
Silverlight
ArcGIS pour les développeurs
• Flex :
- API agslib 3.5 (septembre 2013)
- Framework de développement proposé par ESRI :
- FlexViewer : http://resources.arcgis.com/en/communities/flex-viewer/
- Code ouvert de l’Application Builder (https://github.com/Esri/arcgis-viewer-
flex/tags) pour faciliter la configuration du FlexViewer
- Développements d’extension par la communauté des développeurs autour de ce
framework :
- https://github.com/Esri/arcgis-samples-flex
- Galerie d’extensions pour le FlexViewer :
http://www.arcgis.com/home/search.html?q=flex%20viewer&focus=applications-
web-flex
Flex Application
Builder
ArcGIS Viewer For Flex
SIG 2013. Atelier technique.
SDK Web / Les frameworks Flex et
Silverlight
ArcGIS pour les développeurs
• Silverlight :
- API Silverlight 3.1
- Viewer 32 et 64 bits.
- Framework de développement proposé par ESRI :
- Silverlight Viewer : http://resources.arcgis.com/en/communities/silverlight-viewer/
- Application Builder : http://resources.arcgis.com/en/help/silverlight-
viewer/concepts/index.html#//01770000000n000000 pour faciliter la
configuration du Silverlight Viewer
- Galerie d’extensions pour le Silverlight Viewer:
http://www.arcgis.com/home/search.html?q=tags%3A%20%22silverlight%20vie
wer%22&t=content
ArcGIS Viewer for Silverlight
Silverlight Application Builder
SIG 2013. Atelier technique.
SDK Web / API ArcGIS Portal
ArcGIS pour les développeurs
• API REST aussi
• Présente au sein des 3 technologies web (JS/Flex/Silverlight)
• Compatible avec AGOL et les portails déployés en interne créés avec Portal
for ArcGIS.
• Permet de s’authentifier sur le Portal
• Manipule les objets du Portal (Item, Folder, Group, WebMap…)
• Accède aux services exposés par le Portal (Geometry Service, Route
Service…)
• Documentation complémentaire :
http://resources.arcgis.com/fr/help/arcgisonline/index.html#//010q000000mv0
00000
AGOL / ArcGIS for Portal
HTTP REST
SIG 2013. Atelier technique.
GeoEvent Processor
• Moteur d’évènements, orienté « message », permettant de traiter et
diffuser des évènements géographiques en « temps réel ».
A
• Titre de la session
SIG 2013. Atelier technique.
GeoEvent Processor SDK
• Permet d’étendre les capacités du GeoEvent Processor sur deux
axes :
- Connectivité : Implémentation de Connecteurs
- Transport
- Adaptor
- Processeurs
- Implémentation Custom de traitements intégrés au GeoEvent
Processor
- Le SDK est disponible en Java – Maven
- Javadoc
- Exemples
- Librairies - Dependances
A
• Titre de la session
SIG 2013. Atelier technique.
GitHub – Projets / Bibliotheques
• Esri fournit un ensemble de projets et de Bibliothèques, d’exemples
pour les développeurs ou utilisateurs
- Code source
- Ouvert à la communauté
A
• Titre de la session
http://esri.github.io
SIG 2013. Atelier technique.
Esri.GitHub.io – 121 projets • node-geoservices-adaptor
• gptools-for-aws
• map-tour-storytelling-template-js
• military-feature-toolbox
• local-government-online-apps
• arcgis-samples-flex
• arcgis-viewer-builder-flex
• arcgis-viewer-flex
• my-government-services
• side-accordion-map-storytelling-template-js
• social-media-map-template-js
• koop
• arcgis-osm-editor
• geoportal-server
• quickstart-map-js
• maps-app-android
• html5-geolocation-tool-js
• offline-windturbine-inspector-android
• position-analysis-js
• patrol-data-capture-toolbox
• military-features-data
A
• Titre de la session
• defense-and-intel-basemaps-misc-toolbox
• vehicle-commander
• image-discovery-app-js
• defense-and-intel-analysis-toolbox
• application-boilerplate-js
• permit-status-app
• ago-tools
• ago-assistant
• geometry-api-java
• geocoder-search-widget-js
• esri-leaflet
• terraformer-arcgis-parser
• community-addressing
• executive-dashboard
• countdown-storytelling-template-js
• quickstart-map-library-flex
• arcgis-samples-winphone
• omniauth-arcgis
• park-and-recreation-finder
• code-violation
• parcel-value
• water-utility-mobile-map
• value-analysis-dashboard
• tax-parcel-viewer
• public-safety-cop
• public-information-center
• map-and-app-gallery
• local-government-desktop-addins
• land-use-public-notification
• land-use-public-comment
• election-results
• gis-tools-for-hadoop
• election-polling-places
• community-planning
• citizen-service-request
• campus-place-finder
• route-status-dashboard-js
• 3d-cities-template
• spatial-framework-for-hadoop
• geoprocessing-tools-for-hadoop
• route-planner-csharp
• swipe-map-storytelling-template-js
• map-gallery-template-js
• terraformer-geostore
• terraformer-geostore-rtree
• terraformer-geostore-memory
• terraformer-geostore-localstorage
• terraformer-wkt-parser
• text-and-legend-map-storytelling-template-js
• geocon-file-routines
• ntv2-file-routines
• configurable-place-finder
• deed-drafter
• compare-map-storytelling-template-js
• basic-map-storytelling-template-js
• preview-app-osx
• R-toolbox-py
• twitter-for-geoevent
• mongodb-for-geoevent
• hadoop-for-geoevent
• activemq-for-geoevent
• instagram-for-geoevent
• heatmap-widget-flex
• thematic-widget-flex
• geoservices-js
• feature-service-editor-js
• quickstart-map-ios
• ogc-crs-wkt-parser
SIG 2013. Atelier technique.
Esri.GitHub – Quelques exemples (1)
• geometry-api-java
- Manipulation de geometries en java
- Lecture/Ecriture
WKB/WKT/GeoJSON …
• gis-tools-for-hadoop
• Spatial-framework-for-hadoop
• Geoprocessing-tools-for-hadoop
A
• Titre de la session
SIG 2013. Atelier technique.
Esri.GitHub – Quelques exemples (2)
• add-shapefile-js
- Lecture d’un shapefile en javascript
• esri-leaflet
- Plugin pour leaflet pour utiliser ArcGIS Server / ArcGIS Online
• arcgis-viewer-flex
- Sources / projet
• thematic-widget-flex
- Carte thematiques pour le builder / viewer flex
A
• Titre de la session
SIG 2013. Atelier technique.
Ressources développeur
Titre de la session
http://developers.arcgis.com