Avec
les récentes évolutions tarifaires de l'API Google Maps avec des coûts qui ont drastiquement augmentés pour afficher simplement vos données sur un fond de carte, les développeurs envisagent d'autres alternatives et envisagent une migration vers la plateforme ArcGIS. Dans cet article, je vous propose de voir les raisons pouvant conduire à cette alternative.
Tout d'abord, l'API JavaScript ArcGIS est l'état de l'art en terme d'API de web mapping avec une API mature, fonctionnelle et un SDK inégalés pour créer
des visualisations cartographiques 2D et 3D. L'API propose une série de widgets qui exposent ces fonctionnalités pour permettre une expérience utilisateur grand-public et des capacités de
traitement coté-client pour créer des applications efficaces et interactives exploitant les dernières technologies des navigateurs.
- L'utilisation de toute les APIs et SDKs (JavaScript mais aussi natifs) pour développer des apps sur les plateformes web, mobiles et bureautiques.
- 1 000 000 de transactions sur le fond de carte et les fonctions de Geosearch par mois
- Des crédits pour géocoder des adresses ou calculer des itinéraires
- La capacité à créer un nombre illimité d'apps (ne générant pas de revenus)
- Un nombre illimité d'utilisateurs accédant à ces apps
- Des fonds de carte totalement personnalisables en termes de contenus et de styles de rendu
- Des capacités pour héberger, interroger et analyser vos contenus en publiant vos propres données en tant que services web sur la plateforme ArcGIS Online
- Un accès à un riche catalogue de contenus multi-thématiques mis à disposition en tant que services web sur la plateforme ArcGIS Online
- Un accès à des fonctionnalités d'analyse spatiale en ligne mises à disposition en tant que services web sur la plateforme ArcGIS Online
Si vous êtes prêts à migrer de l'API JavaScript Google Maps vers l'API JavaScript ArcGIS, voici un rapide aperçu des concepts de base.
Démarrer avec l'API JavaScript ArcGIS
Pour charger l'API JavaScript Google Maps, vous référencez l'API et vous indiquez votre clé d'API Google API comme ceci:
Avec l'API JavaScript ArcGIS vous n'avez pas besoin de clé d'API, vous devez simplement référencer l'API et les fichiers de styles CSS comme ceci:
Afficher une carte
Ci-dessous, voici comment initialiser une carte avec Google:
Avec ArcGIS, un nouvelle carte est initialisée de cette façon. Vous noterez que vous créez à la fois un objet "carte" et une vue sur cet objet "carte", ceci afin de pouvoir séparer les données de la carte et la manière dont ces données sont visualisées en 2D ou en 3D (ou les deux à la fois).
Ce code permet de créer une carte avec le fond de carte vectoriel Esri "World Navigation". Si vous le souhaitez, vous pouvez choisir un autre style de fond de carte parmi ceux disponibles sur ArcGIS Online tels que "Satellite Imagery", "Topographic", "Strees", "Dark gray canvas", "Light gray canvas" ou d'autres styles de fonds de carte personnalisés par vous ou d'autres utilisateurs.
Ajouter un symbole ponctuel (marker)
Ajouter un "marker" avec Google se fait de la manière suivante:
Pour ajouter un "marker" avec ArcGIS, un nouvel objet "graphic" est créé puis ajouté à la collection d'objets "graphics" de la vue de votre carte.
Le code ci-dessus permet de créer un symbole en forme de cercle de couleur cyan à l'aide de l'objet "simple marker", mais il y a d'autres manières de créer des symboles pour vos objets "graphic" ponctuels. Par exemple, vous pouvez sélectionner des symboles depuis la police d'icônes Esri comme ci-dessous:
Dans ArcGIS, une option plus dynamique pour associer un symbole aux objets de votre carte est d'utiliser les données attributaire qui leur sont associées pour définir la forme, la couleur, la taille ou encore l'opacité du symbole. Dans
cet exemple, nous avons créé des objets "graphics" à partir d'un flux GeoJSON des données de tremblements de terre et, dynamiquement, la taille du symbol de chaque "graphic" a été définie en fonction de l'intensité du séisme.
Utiliser des fenêtres contextuelles
Les "InfoWindow" de l'API Google sont utilisées pour afficher des contenus dans une fenêtre contextuelle de la manière suivante:
Avec l'API JavaScript ArcGIS vous pouvez ajouter une fenêtre contextuelle en créant tout d'abord un "Template". Ce dernier décrit le contenu qui sera affiché dans la fenêtre contextuelles ("Popup" dans ArcGIS). Ci-dessous un exemple montrant les différentes étapes pour créer la carte et la vue sur la carte, puis ajouter un objet ponctuel avec un "pin symbol" et enfin lui attacher une fenêtre contextuelle:
Voir cette app dans
codepen.
En adaptant très légèrement le code précédent (en remplaçant la "MapView" par une "SceneView") , vous pouvez également exploiter la même app en 3D (voir dans
codepen).
Etapes suivantes et autres ressources
Si vous souhaitez poursuivre votre découverte de l'API JavaScript ArcGIS, de nombreux autres aspects de l'API seront abordés dans les prochaines semaine sur le blog ArcGIS pour vous permettre d'aller plus loin dans les fonctionnalités de votre application:
- Recherche, Filtrage, Requête attributaire et spatial
- GéoSearch et Géocodage
- Calcul et affichage d'itinéraires et de feuilles de route
- Dessin et ajout de géométries
- Analyse spatiale et croisement de couches d'entités (points, lignes, surfaces)
- Création d'attributs et calcul de nouveaux attributs
- Affichage d'étiquettes et de rendus cartographiques avancés
- ...
Vous vous orienteriez pour cela sur l'onglet
Guide (et notamment
cette page) qui vous donnera les clés de l'API et les concepts généraux sur l'usage des librairies JavaScript d'Esri. Vous consulterez aussi et surtout sur l'onglet
Sample Code qui vous propose des centaines d'exemples de code sur tous les aspects de l'API pour vous permettre de démarrer rapidement le développement de votre application.