Le Prémisse
Alors que les couches ArcGIS Tracker ('Tracks' & 'Last Known Location') peuvent être utilisées pour diffuser en direct des données de localisation vers notre portail web, ces données sont protégées par des paramètres de sécurité supplémentaires qui empêchent leur partage public. Cela est compréhensible et fait partie du design pour protéger la vie privée personnelle et éviter que notre localisation soit partagée accidentellement avec des personnes non autorisées.
Cependant, il existe une autre méthode par laquelle nous pouvons configurer un flux de localisation quasi-en direct à des fins de suivi public... Considérez les usages publics suivants d'une application web :
- Suivre un défilé le long d'un itinéraire local
- Localiser un bus scolaire sur sa boucle
- Retracer vos propres pas sur le terrain
Ce sont des usages assez simples et peu gourmands en stockage (consommation de crédits) pour lesquels nous pouvons utiliser la suite ArcGIS Online.
Le flux de travail dans ce billet de blog combinera les produits ArcGIS suivants pour configurer une application web publique pour la diffusion quasi-en direct et le suivi de localisation :
- ArcGIS Online
- ArcGIS QuickCapture (Field Apps Bundle)
- ArcGIS Web AppBuilder
- ArcGIS Pro (si nécessaire, voir "Important Considerations" ci-dessous)
Avertissement :
ArcGIS QuickCapture sera le mieux adapté pour diffuser des entités de cette ampleur depuis un seul appareil. Tenter d'appliquer cette méthode à plusieurs utilisateurs (par exemple une flotte de voitures) dans un seul projet produira probablement des problèmes de performance et une expérience de moins en moins "live".
Le Flux de Travail
Dans cet exemple, nous allons suivre un camion de glaces théorique, alors qu'il parcourt un quartier.
Dans ArcGIS Online, nous voudrons créer une couche d'entités ponctuelles - j'ai nommé la mienne "Icecream Truck".
Puis, accédez au QuickCapture Designer via le menu App Shortcut dans ArcGIS Online, ou en utilisant l'URL : https://www.arcgis.com/apps/quickcapture/
Créer un nouveau projet QuickCapture est facile :
- Cliquez sur "New Project"
- Choisissez "Start from existing layers" et sélectionnez votre couche d'entités ponctuelles
- Cliquez sur "Next" puis "Create" votre projet
- Veuillez consulter "Get started with ArcGIS QuickCapture" et "Configure a Project" pour plus d'informations sur les fonctionnalités de conception des projets ArcGIS QuickCapture
- Sélectionnez le bouton pour votre couche d'entités ponctuelles, allez à l'onglet "Data" et assurez-vous que "Streaming points" est sélectionné :

- Vous pouvez également aller dans Settings > General > activer/désactiver la précision requise, ainsi que définir un "Distance Threshold" entre les points capturés.
- Puis "Save" votre projet
- Maintenant, nous (ou l'agent sur le terrain) devrons télécharger et installer l'application mobile ArcGIS QuickCapture sur notre appareil mobile > se connecter > sélectionner le symbole '+' > Parcourir les projets > Télécharger le projet QuickCapture
- Puis, allez dans QuickCapture Settings > Autosend > activez "On" > et sélectionnez Interval = 'Immediately'
Cette dernière étape garantira que les entités ponctuelles diffusées sont synchronisées avec la couche d'entités dans ArcGIS Online dès qu'elles sont capturées.
Maintenant, retour dans ArcGIS Online...
- Allez dans Content, puis trouvez et sélectionnez votre couche d'entités ponctuelles
- Choisissez "Create View Layer"
- Donnez un Nom, un Résumé et des Tags à la nouvelle couche vue
- Puis choisissez "Open in Map Viewer"
- Dans votre carte web, ouvrez le menu déroulant pour la View Layer > Set View Definition > Define Features

- Nous pouvons alors utiliser l'attribut 'Fix Time' (créé par QuickCapture) pour définir une expression afin d'afficher uniquement les points qui ont été diffusés au cours des x dernières minutes, par exemple :
Fix Time - In the last - 5 - minutes

- De plus, nous voulons définir notre 'Refresh Interval' sur cette couche au minimum possible (toutes les 30 secondes) afin que la carte web soit mise à jour aussi souvent que possible pour notre audience de l'application web...

- Ouvrez à nouveau le menu déroulant pour la view layer et choisissez "Save Layer"
Sauvegardez la carte web et donnez-lui un Nom, des Tags et un Résumé...
Maintenant, ajoutons la nouvelle carte web à une Application Web...
- Allez dans Content > Create > Web AppBuilder
- Choisissez '2D' > Donnez un Nom, des Tags et un Résumé à l'application web > Cliquez sur "Create"
- Choisissez un thème
- Ajoutez votre carte web
- Ajoutez des widgets qui pourraient intéresser :
- Bookmarks (depuis la carte web)
- Filter (vous pouvez souhaiter offrir à l'utilisateur la possibilité de filtrer encore plus par l'attribut 'Fix Time')
- Sauvegardez l'Application Web
- Dans ArcGIS Online > Content > définissez le partage sur "Everyone (Public)" pour les contenus suivants :
- Couche d'entités View
- Carte Web
- Application Web
Même nous (ou l'agent sur le terrain) pouvons commencer à diffuser leur localisation depuis ArcGIS QuickCapture, et leurs déplacements peuvent être observés se mettre à jour toutes les 30 secondes dans l'application web, avec leur position des 5 dernières minutes affichée derrière eux !
Exemple :
Exemple de sortie : Points collectés dans QuickCapture avec un seuil de distance de 10m et application publique Web AppBuilder avec widget Filtre activé « dans les 0.5 dernières minutes », pour une voiture circulant dans un quartier local
Considérations Supplémentaires
Filtres de la couche View : Les entités disparaîtront de la carte après que le seuil temporel défini dans notre couche view soit dépassé. Pour contourner cela, nous pourrions appliquer un filtre « le plus récent » au JSON du service d'entités en suivant le flux de travail décrit ici : https://community.esri.com/t5/arcgis-online-documents/display-latest-feature-in-a-feature-service/ta-p/904523
Et en utilisant la syntaxe suivante comme guide, nous pouvons retourner les 5 points les plus récents par nom d'utilisateur :
{
"viewLayerDefinition": {
"topFilter": {
"orderByFields": "OBJECTID ASC",
"groupByFields": "Creator",
"topCount": 5
}
}
}
Sujets liés au stockage : La diffusion en continu et le stockage massif d'entités via ArcGIS QuickCapture auront un impact croissant sur la consommation de crédits ArcGIS Online au fil du temps. Nous devons penser à supprimer par lots les entités ponctuelles collectées lorsqu'elles ne sont plus pertinentes pour notre usage. Cela peut être fait facilement dans ArcGIS Pro en procédant comme suit :
- Ouvrez ArcGIS Pro, connectez-vous à ArcGIS Online comme votre 'Active Portal' et connectez-vous.
Allez dans le panneau 'Catalog', puis sous l'onglet 'Portal', trouvez votre couche d'entités en streaming.Ajoutez cette couche à la carte, faites un clic droit dessus dans le panneau 'Contents' et ouvrez sa table attributaire.Ctrl + A sélectionnera toutes les entités.Cliquez ensuite sur le bouton 'Delete' pour les supprimer.
< P > < span class =