Le blog francophone consacré
aux technologies Esri

Découvrir l'API JavaScript ArcGIS

L'actualité de l'automne a été riche avec la sortie d'ArcGIS 9.3. A part annoncer la disponibilité de la version 1.2, nous n'avions encore pris le temps de parler en détails de l'API JavaScript d'ArcGIS Server.

L'API JavaScript ArcGIS c'est quoi ?

L'API JavaScript ArcGIS est une des API cliente d'ArcGIS Server 9.3. Selon exactement le même principe que pour l'API Flex, l'API JavaScript permet de construire en quelques lignes de code JavaScript (dans une page HTML) des applications Web connectées à des serveurs ArcGIS Server. L'idée est d'intégrer très facilement et très rapidement dans les pages de votre site Web, sans être un développeur chevronné, vos services de cartes, de géocodage, de géotraitement, d'extraction, …

Comment ça marche ?

La logique de l'API JavaScript ArcGIS est assez similaire à celle de Google Maps, Microsoft Virtual Earth ou encore Yahoo Maps. Après avoir référencé les librairies de l'API JavaScript ArcGIS dans votre page HTML, vous pouvez insérer dans la page des éléments comme une carte puis gérer son contenu et les interactions avec l'utilisateur en vous appuyant sur des services ArcGIS Server.

La communication entre votre page HTML et le serveur SIG se fait par un mécanisme de type RESTful. Des URL (contenant une opération et des arguments) sont envoyées au serveur qui expédie sa réponse sous la forme de chaînes JSON (JavaScript Object Notation). Avec l'API JavaScript ArcGIS, le développeur de l'application dispose d'objets gérant l'expédition des URL et le traitement des réponses sans se préoccuper des mécanismes AJAX et des problématiques de sérialisation/désérialisation des messages JSON.



Un exemple très simple



La première chose à faire est de créer une page HTML puis de référencer les librairies de l'API JavaScript ESRI. Pour cela vous utiliserez la ligne de code suivante:

Dans un deuxième temps vous allez référencer la classe "esri.map" qui permettra de gérer la carte dans notre page HTML.

Ensuite, il s'agira de créer une fonction d'initialisation de la carte qui, après le chargement de la page, remplira la carte avec le (ou les) services de cartes adéquat (ici c'est l'URL du service StreetMap d'ArcGIS Online qui a été utilisée). Cette fonction d'initialisation crée un objet "Map" puis un objet "ArcGISTiledMapServiceLayer" et enfin ajoute ce service à la carte.

Il ne nous reste plus qu'a définir l'emplacement de la carte dans la page à l'aide d'une balise HTML "div" en spécifiant l'identifiant préalablement utilisé dans la fonction d'initialisation.


Votre première application est maintenant terminée. Vous pouvez télécharger le code et exécuter la page HTML sur votre machine. Vous pouvez également accéder directement à l'application à parti de ce lien.


Les extensions pour Google Maps et Microsoft Virtual Earth

L'API JavaScript ArcGIS dispose de deux extensions permettant consommer les différents types de services ArcGIS Server directement dans les frameworks Google Maps et Virtual Earth. Plus concrètement, il s'agit de librairies JavaScript supplémentaires qui permettent au développeur d'utiliser toute la richesse fonctionnelle d'ArcGIS Server en passant par l'API JavaScript ArcGIS mais tout en continuant à manipuler les objets du framework de Google ou de Microsoft. Ces librairies complètent les modèles objets respectifs de ces frameworks et sont donc très facile en main par un développeur Google Maps ou Virtual Earth.

Ces deux extensions sont très bien documentées et de nombreux exemples sont fournis. Pour encore plus de productivité les documentations respectives de l'extension pour GM et de l'extension pour VE sont présentées avec le même look-and-feel et la même organisation que la documentation originale de ces frameworks.

Un exemple de la documentation en ligne avec l'extension pour Google Maps :



Un exemple de la documentation en ligne avec l'extension pour Virtual Earth :



Différences avec une application Web ADF

L'objectif de cet article n'est pas de décrire dans le détail les différentes architectures de développements d'applications web possibles mais on peut cependant donner ici quelques éléments. L'API JavaScript et l'API Flex s'appuient sur une architecture l'architecture 2 Tiers dans laquelle le client dialogue directement avec ArcGIS Server via son API REST. Les messages sont échangés en JSON selon le protocole HTTP. Dans le cas d'une application développée avec les Web ADF (Application Developer Framework) on est dans une architecture 3 Tiers dans laquelle un serveur d'application exécute l'application web .Net ou Java et consomme les services d'un ou plusieurs serveurs SIG en utilisant une connexion Internet (SOAP/XML) ou une connexion locale (ArcObjects/DCOM). Le schéma résume ces deux types d'architecture:


Les ressources

La documentation et de très nombreux exemples de code sont disponibles sur le Resource Center d'ESRI et vous permettront de démarrer très vite des applications bien plus évoluées que celle présentée ci-dessus. Au delà de la documentation de référence, je vous recommande particulièrement de parcourir les rubriques "Samples" et "Community" qui constituent une mine d'or de code réutilisable.
Voilà pour cette petite introduction, à bientôt pour la suite …

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: