Le blog francophone consacré
aux technologies Esri

ArcGIS Online : services de cartes à partir de services d’entités




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

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

2 comments :

sweet a dit…

Bonjour!

Je voudrais savoir, pour information, combien de "crédits" cette génération de plus de 146 millions de tuiles aura nécessité? Cela me semble quand même énorme!

Christophe Tourret a dit…

Dear Sweet,
Heureusement, ArcGIS Online permet de sélectionner sur quels niveaux d'échelle les tuiles doivent être construites. Pour ce type de carte à la commune, il ne sert à rien en fait de descendre plus bas que le 1/144k (et encore). Cela fait un cache de 36000 tuiles, soit un coût de 36 crédits, quelques euros. Pour faire ce cache, vous pourriez aussi utiliser une machine locale, un logiciel local, etc.. Mais tout cela a aussi un coût, pas seulement d'acquisition, mais aussi de mise en place, d'administration, de formation, … C'est toute la beauté du Cloud et d'ArcGIS Online de proposer une alternative au modèle classique. Après, il y a d'autres alternatives à ArcGIS Online pour faire un cache de tuiles, comme ArcGIS Desktop par exemple, qui permet de mettre en place une cartographie beaucoup plus élaborée, calculer le cache sur le poste bureautique, puis le charger sur ArcGIS Online pour la publication et le partage. Mais ce sera l'objet d'un autre article...