Le blog francophone consacré
aux technologies Esri

Récupérer vos pièces jointes depuis un service ArcGIS Online

Nous avons eu l'occasion de l'évoqué plusieurs fois dans arcOrama, grâce aux Feature Services hébergés d'ArcGIS Online et d'une application mobile comme Collector for ArcGIS, vous pouvez mettre en œuvre des opérations de saisie de données sur le terrain en quelques minutes.

Au delà des données géométriques et attributaires des entités collectées, il est également possible d'y associer des pièces jointes ("attachments" en anglais) comme des photos, des vidéos, des sons ou tout autre document.

La question ayant été posée sur ce blog il y a quelques semaines, je vous propose de voir comment on peut télécharger en local les données d'un Feature Service ArcGIS Online (y compris les pièces jointes). J'en profite pour décrire l'ensemble du processus de la publication du service sur ArcGIS Online (ce serait exactement la même chose avec ArcGIS Server), jusqu'à la récupération en locale des données collectées sur le terrain.

1. Préparer ses données et publier le Feature Service hébergé

Pour pouvoir gérer des pièces jointes sur une couche de votre SIG, il faut que celle-ci soit stockée dans une Géodatabase. Ensuite, il suffit de lancer la commande "Gérer > Créer des pièces jointes" à l'aide d'un clic-droit sur votre classe d'entités de Géodatabase dans votre catalogue ArcGIS.



Pour pouvoir télécharger une copie les données de votre Feature Service ArcGIS Online avec une Géodatabase locale de manière exhaustive (données + pièces jointes), nous allons utiliser le mécanisme de mise à jour déconnecté proposé par les Feature Services ArcGIS Online ou ArcGIS Server.

Vous devez donc tout d'abord activer la capacité "Synchronisation" lors de la publication de votre Feature Service. Ceci se fait dans l'assistant de publication de services d'ArcGIS Desktop. 


Votre Feature Service est désormais publié sur la plateforme ArcGIS Online.



2. Préparer une carte web pour vos utilisateurs terrain

Avant de partir sur le terrain vous devez préparez la carte web (Web Map) qui sera proposée à vos opérateurs sur leur application mobile. Vous penserez notamment à gérer les échelles d'affichage des données métiers et à choisir un fond de carte qui convient le mieux aux besoins de collecte. Vous penserez également à partager cette carte web avec les utilisateurs terrain devant accéder à la carte




3. Utiliser la carte et collecter les données sur le terrain

Maintenant que votre carte web est partagée, vérifiez que l'application Collector for ArcGIS est installée sur vos appareils iOS ou Android. Pour plus d'infos, vous pouvez consulter cette page.

A l'ouverture de Collector for ArcGIS, après s'être identifié, votre opérateur devra choisir la carte web correspondant à sa mission. Automatiquement, ce dernier sera géolocalisé à l'aide du GPS de son appareil mobile.


Il pourra ensuite cliquer sur une entité de votre Feature Service (par exemple comme ici sur un compteur de réseau d'eau). En cliquant sur l'entité dans la zone inférieure de l'application, l'opérateur pourra indiquer l'opération à réalisé, par exemple "Modifier" l'entité.

L'opérateur dispose alors d'une interface lui permettant de modifier les attributs de l'entité. C'est à partir de cette interface qu'il peut associer des pièces jointes comme par exemple une photo. Il dispose d'ailleurs d'un bouton dédié lui donnant accès aux fonctions de capture photographique du smartphone ou de la tablette.

Une fois la photo réalisée, elle est ajoutée aux pièces jointe de l'entités. On notera que plusieurs pièces jointes peuvent être associées à une entité.



Dès que Collector for ArcGIS sera connecté à ArcGIS Online, les modifications apportées aux entités sont automatiquement postées.

Une fois le travail de collecte terminé, vous pouvez facilement vérifier la saisie des utilisateurs en visualisant et en interrogeant les entités du Feature Service à l'aide de la visionneuse d'ArcGIS Online. 



4a. Télécharger les données collectées dans une Géodatabase locale à partir d'ArcGIS Desktop

Pour télécharger les données de votre Feature Service, vous ajouterez votre service dans une nouvelle carte à l'aide de l'application ArcMap. Pour cela, glissez le sur la carte à partir du dossier "Mes services hébergés".



Si vous cliquez sur une entité possédant une pièce jointe, celle-ci doit s'afficher dans la fenêtre HTML.



A l'aide d'un clic-droit sur le groupe de couches correspondant à votre Feature Service, exécutez la commande "Modifier les entités > Créer une copie locale pour la mise à jour".  



Une nouvelle Géodatabase Fichier est créée, elle contient l'ensemble des données du Feature Service (y compris les pièces jointes).


Le nom et le chemin d'accès de cette Géodatabase sont consultables dans les propriétés de la couche. 


Remarque:

Le mécanisme de synchronisation des Feature Services ArcGIS (Online ou Server) permet de modifier les entités dans ArcMap puis de re-synchroniser ces mises à jour avec le Feature Service. De cette manière, les utilisateurs d'ArcGIS Desktop contribuent à la mise à jour des données du Feature Service de manière cohérente avec les applications web et mobile. Si vous modifiez la structure ou si vous renommez/déplacez cette Géodatabase ce mécanisme de re-synchronisation ne pourra pas être utilisé. 

4b. Télécharger les données collectées directement depuis l'interface Rest d'ArcGIS Online

Une autre solution est envisageable si vous ne disposez pas d'ArcGIS Desktop ou si vous souhaitez automatiser ce processus d'extraction de données. elle consiste à créer un réplica en passant par l'interface Rest de votre Feature Service. 

Afficher la page de description Rest de votre service hébergé puis cliquer sur l'opération "Create Replica".


Vous définirez ensuite les paramètres d'extraction du réplica:
- spécifier un nom pour votre réplica
- indiquer les indexes des couches à extraire du Feature Service
- mettre la valeur de Return Attachments à True
- mettre la valeur de Return Attachments Data By Url à False
 (pour forcer le téléchargement les pièces jointes)
- mettre la valeur de Create Replica Asynchronously à False
- mettre la valeur de Sync Model à None
- mettre la valeur de Data Format à FILEGDB
- mettre la valeur de Format à HTML

Cliquer ensuite sur le bouton Create Replica pour exécuter l'export du réplica. 


Un lien s'affiche alors pour vous permettre de télécharger un fichier ZIP contenant la Géodatabase Fichier.

Pour automatiser ce processus d'extraction, vous pouvez utiliser l'interface via un script (Python par exemple). Pour tout savoir sur les paramètres du "CreateReplica" en Rest, la documentation se trouve ici

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

2 comments :

Anonyme a dit…

Bonjour,
Le mécanisme de synchronisation des Feature Services nécessite-t-il un niveau de licence minimum d'Arcgis desktop ? Il me semble que la synchronisation est impossible avec la licence basic.

Cordialement,

Louis D a dit…

Bonjour Gaétan,

Dans le cadre d'un projet, j'ai un Feature Layer stocké sur AGOL avec des pièces jointes sur plusieurs entités.

Via arcmap, j'ai besoin de faire une jointure de ce FL avec une autre table et ensuite que les champs joints soient visible sur AGOL.

la procédure que je compte utiliser est depuis Arcmap (standard), créer une copier locale, faire la jointure et synchroniser.

ma question est de savoir si les liens des pièces jointes seront bien conserver en suivant cette procédure?

Sinon, quelle serait la procédure à suivre?

Merci par avance.

Cdt