Comment exploiter un services d'entités hébergé sur ArcGIS Online lorsque celui-ci contient plusieurs milliers d'entités ?
Lors de l'ajout d'un service d'entités dans une webmap, vous avez peut-être déjà rencontré un message d'avertissement vous signalant que le nombre d'entités à afficher est trop important. En conséquence la couche ne sera pas affichée entièrement.
Pourquoi ?
Une limite du navigateur web
Lorsque vous ajoutez un service d'entités dans une webmap, ce
service web est requêté avec comme seul contrainte l'étendue d'affichage courante (donc un critère spatial) et le résultat de la requête est chargé
par le navigateur web. Celui ci utilise la mémoire locale. Cette mémoire est limitée et sa saturation affecte les performance du navigateur web
donc l'expérience utilisateur. En bref, ça rame...
C'est pourquoi tout service d'entités hébergé sur ArcGIS
Online est paramétré pour ne pas retourner plus de 2000 enregistrements
lors d'une requête, comme un affichage. Si l'utilisation de votre service d'entités implique plus de 2000
entités, un message d'avertissement apparait donc et signale que toutes
les entités ne seront pas chargées. Une des stratégie classique est alors de mettre en place des limites d'échelle pour l'affichage de la couche afin de minimiser la quantité de géométrie à afficher.
Pour afficher toutes les entités dans une étendue donnée il vous faudra donc zoomer pour atteindre une échelle d'affichage correspondant à moins de 2000 entités.
Pour rappel, un service web hébergé sur votre propre ArcGIS for Server possède également cette limite (nombre maximum d'enregistrement retourné lors d'une requête), mais elle est configurable et peut donc être augmentée.
La solution au problème
Une des nouveautés d'ArcGIS Online dans sa version de décembre 2012 est de pouvoir publier des services de carte tuilé directement depuis le portail ArcGIS Online à partir d'un service d'entités hébergé existant.
ArcGIS Online va donc créer un cache qui va affranchir le navigateur de la complexité de la tâche d'affichage vectoriel et apporter aux utilisateurs une expérience de performance et de fluidité.
Voyons donc ensemble les étapes pour créer un service de carte depuis un service d'entités, tout cela depuis ArcGIS Online. Nous allons prendre comme exemple les communes de France métropolitaine issues du GEOFLA IGN (+36 000 enregistrements).
Nous partons donc d'un service d'entités existant correspondant aux communes françaises.
Ce Service web peut être créé depuis ArcGIS for Desktop ou depuis votre portail ArcGIS Online directement via le chargement d'un shapefile.
La première étape consiste à définir la symbologie de la couche. Pour cela, il nous suffit d'ajouter le service d'entités à une carte dans la visionneuse de cartes ArcGIS Online, puis via le menu contextuel on accède au paramétrage de la symbologie de la couche.
Ici, nous choisissons une symbologie thématique liée à la densité de population avec un classification selon la méthode quantile et 5 classes de valeurs. La palette de couleurs est dans la tonalité orange.
On en profite également pour paramétrer la fenêtre contextuelle d'affichage des infos attributaires. Vous constaterez l'intérêt de ceci à la fin. Suspens...
Nous ne conservons ici que les champs qui nous intéressent (population, nom de la commune, du département et de la région, etc...), puis nous définissons les alias pour plus de lisibilité.
Il nous faut à présent enregistrer ces paramètres, mais pas dans la webmap, directement dans la définition du service d'entités. Ceci se fait via le menu contextuel de la couche.
Il nous reste à publier le service de carte tuilé à partir du service d'entités. Pour cela il faut retourner dans la page de propriétés du service web. Vous constaterez que vous disposer à présent d'un bouton "Publier".
En cliquant sur ce bouton, nous allons pouvoir définir les détails du
cache. Il s'agit du schéma de tuilage d'ArcGIS Online, et nous
choisissons la plage d'échelle du cache.
Un fois ces informations complétées et validées, le calcul du cache s'effectue en arrière plan sur la plateforme ArcGIS Online, sans que vous ayez à vous soucier de ressources machines disponibles ou d'espace de stockage libre.
Une boite de dialogue vous renseigne sur la progression du calcul du cache.
Utilisation du service de carte
Lorsque nous somme dans la visionneuse de carte ArcGIS Online et que nous ajoutons le service de carte précédemment créé, ArcGIS Online associe automatiquement le service d'entités au
service de carte tuilé.
En d'autres termes :
inutile d'ajouter deux couches (le service de carte tuilé + le service
d'entités correspondant), il suffit d'ajouter le service tuilé
uniquement, le service d'entités sera disponible implicitement (même s'il
n'est pas affiché dans la légende). On pourra ainsi visualiser les
entités sur toutes les plages d'échelle prévues et interroger les
attributs des entités.
On a donc le meilleur des deux mondes, le cache et le service d'entités, un graphisme fluide et performant et un accès aux informations portées par les entités d'origine.
En résumé
Construire un service de carte tuilé sur ArcGIS Online, c'est donc la possibilité de construire une couche cartographique qui est :
- performante (car tuilée)
- interrogeable/requêtable (car liée implicitement au service d'entités)
- intelligente (car le paramétrage de la fenêtre contextuelle du service d'entités sera conservé).
Voici donc un nouvel usage des services web hébergés sur votre plateforme ArcGIS Online que vous soyez ou non utilisateur ArcGIS for Desktop
La mise en oeuvre décrite dans l'article nécessite d'être connecté à ArcGIS Online à l'aide d'un compte membre d'une organisation disposant d'un abonnement à la plateforme. Si tel n'est pas le cas, vous pouvez démarrer
une évaluation de 30 jours pour y tester ces fonctionnalités.
Vous pouvez jouer avec les données présentées dans cet article avec l'application intégrée ci dessous ou en suivant ce lien :
http://bit.ly/144WTc5
Agrandir la carte