Disponible avec l’extension ArcGIS Indoors Maps.
ArcGIS Indoors prend en charge le partage de la localisation des appareils via une couche d’entités personnalisée hébergée dans un data store spatiotemporel associé à votre portail. Vous pouvez utiliser ce service au lieu du service Location Sharing (Partage de la localisation).
Attention :
Ce service ne prend en charge que la collecte des traces des appareils (historique des positions). La fonction recherchant les collaborateurs et leur dernière position connue n’est pas disponible dans cette configuration.
L’application mobile Indoors transmet toujours les localisations à la couche d’entités Location Sharing (Partage de la localisation) si elle est activée dans votre portail, même lorsque vous configurez une couche d’entités personnalisée.
Structure des entités de suivi d’appareils
La table suivante décrit les champs et types de données de la classe d’entités de suivi :
Nom du champ | Alias du champ | Type de données | Description | Valeurs d’exemple |
---|---|---|---|---|
activity | Activité | esriFieldTypeInteger | Activité signalée par l’appareil (immobile, déplacement à pied, déplacement en véhicule, etc.) | 0, 1, 2, ... |
altitude | Altitude | esriFieldTypeDouble | Valeur d’altitude indiquée par le récepteur GPS de l’appareil | 0,5, 1,0, 5,0 |
app_id | ID de l’application | esriFieldTypeString | Nom de l’application | ArcGIS Indoors (constante) |
background_mode | Mode en arrière-plan | esriFieldTypeSmallInteger | État de l’application lorsqu’elle fonctionne sur l’appareil (au premier plan ou en arrière-plan) | 0,1 |
battery_percentage | Pourcentage de la batterie | esriFieldTypeDouble | Autonomie de la batterie indiquée par l’appareil | 1–100 |
battery_state | État de la batterie | esriFieldTypeInteger | État de la batterie indiqué par l’appareil (en charge, décharge) | 1,2 |
course | Trajectoire | esriFieldTypeDouble | Direction relative au nord géographique | 0–359 |
device_id | ID de l’appareil | esriFieldTypeString | Identifiant unique d’un appareil exécutant l’application | GUID |
device_type | Type d’appareil | esriFieldTypeString | Marque et modèle de l’appareil | iPhone 7, Pixel 2 |
floor | Seuil | esriFieldTypeInteger | Ordre vertical indiqué par le système de positionnement en intérieur | 0, 1, 2 |
horizontal_accuracy | Précision horizontale | esriFieldTypeDouble | Rayon d’incertitude des valeurs de latitude et longitude, exprimé en mètres | 0,5, 1,0, 2,5 |
latitude | Latitude | esriFieldTypeDouble | Valeur de latitude indiquée par le récepteur GPS de l’appareil | -90 à 90 |
location_source | Source de localisation | esriFieldTypeString | Source du signal du système de positionnement en intérieur indiquée par l’ELSS | BLE, Wi-Fi, GPS |
location_timestamp | Horodatage de la position | esriFieldTypeDate | Date et heure auxquelles les informations de localisation ont été réinjectées | 21/2/2019, 22:46 |
longitude | Longitude | esriFieldTypeDouble | Valeur de longitude indiquée par le récepteur GPS de l’appareil | -180 à 180 |
session_id | ID de session | esriFieldTypeString | Valeur représentant la session de suivi | Observation sur le suivi |
signal_strength | Puissance du signal | esriFieldTypeDouble | Intensité du signal radio reçu (RSSI) | -1, -90 |
speed | Vitesse | esriFieldTypeDouble | Vitesse du mouvement signalé par les capteurs de l’appareil | 1,0 (mètre par seconde) |
user_id | ID de l’utilisateur | esriFieldTypeString | Nom d’utilisateur utilisé pour se connecter à l’application | user_Indoors |
vertical_accuracy | Précision verticale | esriFieldTypeDouble | Précision verticale de la valeur d’altitude | 0,0, 0,5, 1,0 |
Créer la couche d’entités de suivi d’appareils
Une couche d’entités doit être configurée sur le portail. Elle doit également être créée avec la structure de suivi d’appareils pour stocker les données de localisation. Un Spatiotemporal Big Data Store est recommandé, car il est capable d’évoluer pour gérer de grandes quantités de données de suivi.
Configurer un Spatiotemporal Big Data Store
Pour configurer un Spatiotemporal Data Store pour le portail, procédez comme suit :
- Installez ArcGIS Data Store.
- Créez un Spatiotemporal Data Store.
Remarque :
Accédez à https://<my big data store>/arcgis/datastore/ pour vérifier le statut de la configuration et vous assurer que le serveur ArcGIS Enterprise spécifié dans la procédure d’installation est bien répertorié.
Créer une couche d’entités
Pour créer une couche d’entités de suivi des appareils, procédez comme suit :
- Accédez à https://<my indoors portal>/portal/sharing/rest/login et connectez-vous au compte de l’administrateur principal.
- Accédez à https://<my indoors portal>/sharing/rest/content/users/<admin>/createService.
- Indiquez le modèle JSON dans la zone de texte Create Parameters (Créer les paramètres) et cliquez sur Create Service (Créer le service).
{ "name" : "DeviceTracking_BDS", "editorTrackingInfo": { "enableEditorTracking": true, "enableOwnershipAccessControl": true, "allowOthersToUpdate": false, "allowOthersToDelete": false, "allowOthersToQuery": false }, "capabilities" : "Create,Delete,Query,Update,Editing", options: {"dataSourceType":"spatiotemporal"} }
Remarque :
Notez l’URL du service à la création de ce dernier et assurez-vous qu’il existe bien.
Créer une couche d’entités
Pour créer une couche d’entités de suivi des appareils, procédez comme suit :
- Accédez à https://<my indoors portal>/server/rest/admin/services/Hosted/<name>/FeatureServer/addToDefinition.
- Indiquez le modèle JSON dans la zone de texte Input (Entrée) et cliquez sur addToDefinition (Ajouter à la définition).
{ "layers": [{ "currentVersion": 10.7, "cimVersion": "2.3.0", "id": 0, "name": "DeviceTracking_BDS", "type": "Feature Layer", "parentLayer": null, "defaultVisibility": true, "minScale": 0, "maxScale": 0, "geometryType": "esriGeometryPoint", "description": "", "copyrightText": "", "editFieldsInfo": { "creationDateField": "created_date", "creatorField": "created_user", "editDateField": "last_edited_date", "editorField": "last_edited_user" }, "syncCanReturnChanges": true, "relationships": [], "isDataVersioned": false, "isDataArchived": false, "isDataBranchVersioned": false, "isCoGoEnabled": false, "supportsRollbackOnFailureParameter": true, "supportsStatistics": true, "supportsAdvancedQueries": true, "supportsValidateSQL": true, "supportsCoordinatesQuantization": true, "supportsCalculate": true, "advancedQueryCapabilities": { "supportsReturningQueryExtent": true, "supportsStatistics": true, "supportsDistinct": true, "supportsPagination": true, "supportsOrderBy": true, "supportsQueryWithDistance": true, "supportsLod": false, "supportsPaginationOnAggregatedQueries": true, "supportsQueryWithResultType": true, "supportsCountDistinct": true, "supportsReturningGeometryCentroid": false, "supportsHavingClause": true, "supportsTopFeaturesQuery": false, "supportsOrderByOnlyOnLayerFields": true }, "extent": { "xmin": "NaN", "ymin": "NaN", "xmax": "NaN", "ymax": "NaN", "spatialReference": { "wkid": 102100, "latestWkid": 3857, "xyTolerance": 0.001, "zTolerance": 0.001, "mTolerance": 0.001, "falseX": -2.204125862706707E7, "falseY": -3.3265068604224768E7, "xyUnits": 1.3538524994349548E8, "falseZ": -100000, "zUnits": 10000, "falseM": -100000, "mUnits": 10000 } }, "sourceSpatialReference": { "wkid": 102100, "latestWkid": 3857, "xyTolerance": 0.001, "zTolerance": 0.001, "mTolerance": 0.001, "falseX": -2.20412586270671E7, "falseY": -3.32650686042248E7, "xyUnits": 1.35385249943495E8, "falseZ": -100000, "zUnits": 10000, "falseM": 0, "mUnits": 1 }, "drawingInfo": { "renderer": { "type": "simple", "symbol": { "type": "esriSMS", "style": "esriSMSCircle", "color": [ 28, 130, 0, 255 ], "size": 4, "angle": 0, "xoffset": 0, "yoffset": 0, "outline": { "color": [ 0, 0, 0, 255 ], "width": 1 } } }, "scaleSymbols": true, "transparency": 0, "labelingInfo": null }, "hasM": false, "hasZ": true, "supportsVCSProjection": true, "allowTrueCurvesUpdates": false, "onlyAllowTrueCurveUpdatesByTrueCurveClients": true, "hasAttachments": false, "supportsApplyEditsWithGlobalIds": true, "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", "objectIdField": "objectid", "globalIdField": "globalid", "displayField": "app_id", "typeIdField": "", "fields": [{ "name": "objectid", "type": "esriFieldTypeOID", "alias": "OBJECTID", "domain": null, "nullable": false, "editable": false, "sqlType": "sqlTypeInteger" }, { "name": "activity", "type": "esriFieldTypeInteger", "alias": "Activity", "domain": null, "editable": true, "nullable": false, "length": 10, "sqlType": "sqlTypeInteger" }, { "name": "altitude", "type": "esriFieldTypeDouble", "alias": "Altitude", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "app_id", "type": "esriFieldTypeString", "alias": "App ID", "domain": null, "editable": true, "nullable": false, "length": 255, "sqlType": "sqlTypeVarchar" }, { "name": "background_mode", "type": "esriFieldTypeSmallInteger", "alias": "Background Mode", "domain": null, "editable": true, "nullable": false, "length": 5, "sqlType": "sqlTypeSmallInt" }, { "name": "battery_percentage", "type": "esriFieldTypeDouble", "alias": "Battery Percentage", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "battery_state", "type": "esriFieldTypeInteger", "alias": "Battery State", "domain": null, "editable": true, "nullable": false, "length": 10, "sqlType": "sqlTypeInteger" }, { "name": "course", "type": "esriFieldTypeDouble", "alias": "Course", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "device_id", "type": "esriFieldTypeString", "alias": "Device ID", "domain": null, "editable": true, "nullable": false, "length": 256, "sqlType": "sqlTypeVarchar" }, { "name": "device_type", "type": "esriFieldTypeString", "alias": "Device Type", "domain": null, "editable": true, "nullable": false, "length": 255, "sqlType": "sqlTypeVarchar" }, { "name": "floor", "type": "esriFieldTypeInteger", "alias": "Floor", "domain": null, "editable": true, "nullable": false, "length": 10, "sqlType": "sqlTypeInteger" }, { "name": "horizontal_accuracy", "type": "esriFieldTypeDouble", "alias": "Horizontal Accuracy", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "latitude", "type": "esriFieldTypeDouble", "alias": "Latitude", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "location_source", "type": "esriFieldTypeString", "alias": "Location Source", "domain": null, "editable": true, "nullable": false, "length": 256, "sqlType": "sqlTypeVarchar" }, { "name": "location_timestamp", "type": "esriFieldTypeDate", "alias": "Location Timestamp", "domain": null, "editable": true, "nullable": false, "length": 29, "sqlType": "sqlTypeTimestamp" }, { "name": "longitude", "type": "esriFieldTypeDouble", "alias": "Longitude", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "signal_strength", "type": "esriFieldTypeDouble", "alias": "Signal Strength", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "session_id", "type": "esriFieldTypeString", "alias": "Session ID", "domain": null, "editable": true, "nullable": false, "length": 256, "sqlType": "sqlTypeVarchar" }, { "name": "speed", "type": "esriFieldTypeDouble", "alias": "Speed", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "user_id", "type": "esriFieldTypeString", "alias": "User ID", "domain": null, "editable": true, "nullable": false, "length": 256, "sqlType": "sqlTypeVarchar" }, { "name": "vertical_accuracy", "type": "esriFieldTypeDouble", "alias": "Vertical Accuracy", "domain": null, "editable": true, "nullable": false, "length": 38, "sqlType": "sqlTypeNumeric" }, { "name": "globalid", "type": "esriFieldTypeGlobalID", "alias": "GlobalID", "domain": null, "editable": false, "nullable": false, "length": 38, "sqlType": "sqlTypeVarchar" }, { "alias": "created_user", "name": "created_user", "length": 255, "domain": null, "nullable": true, "type": "esriFieldTypeString", "editable": false, "sqlType": "sqlTypeVarchar" }, { "alias": "created_date", "name": "created_date", "length": 29, "domain": null, "nullable": true, "type": "esriFieldTypeDate", "editable": false, "sqlType": "sqlTypeTimestamp" }, { "alias": "last_edited_user", "name": "last_edited_user", "length": 255, "domain": null, "nullable": true, "type": "esriFieldTypeString", "editable": false, "sqlType": "sqlTypeVarchar" }, { "alias": "last_edited_date", "name": "last_edited_date", "length": 29, "domain": null, "nullable": true, "type": "esriFieldTypeDate", "editable": false, "sqlType": "sqlTypeTimestamp" } ], "geometryField": { "name": "shape", "type": "esriFieldTypeGeometry", "alias": "Shape", "domain": null, "editable": true, "nullable": true, "defaultValue": null, "modelName": "Shape" }, "indexes": [{ "name": "r59_sde_rowid_uk", "fields": "OBJECTID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "uuid_59", "fields": "GlobalID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "a32_ix1", "fields": "Shape", "isAscending": true, "isUnique": true, "description": "" } ], "dateFieldsTimeReference": { "timeZone": "UTC", "respectsDaylightSaving": false }, "types": [], "templates": [{ "name": "DeviceTracking", "description": "", "prototype": { "attributes": { "vertical_accuracy": 0, "user_id": " ", "activity": 0, "altitude": 0, "app_id": " ", "background_mode": 0, "battery_percentage": 0, "battery_state": 0, "course": 0, "device_id": " ", "device_type": " ", "floor": 0, "horizontal_accuracy": 0, "latitude": 0, "location_source": " ", "location_timestamp": -2209161600000, "longitude": 0, "signal_strength": 0, "session_id": " ", "speed": 0 } }, "drawingTool": "esriFeatureEditToolPoint" }], "useStandardizedQueries": true, "standardMaxRecordCount": 32000, "tileMaxRecordCount": 8000, "maxRecordCountFactor": 1, "supportedQueryFormats": "JSON, geoJSON", "maxRecordCount": 2000, "allowGeometryUpdates": true, "hasMetadata": true, "supportsAttachmentsByUploadId": true, "hasStaticData": false, "supportsAsyncDelete": true }] }
- Une fois le traitement terminé, accédez à https://<my indoors portal>/portal/home/content et vérifiez que l’élément existe bien.
Configurer les paramètres de sécurité
Configurez les paramètres de sécurité sur la couche d’entités de suivi d’appareils selon les besoins en matière de sécurité de votre organisation.
Pour configurer les paramètres de sécurité, procédez comme suit :
- Dans votre portail, cliquez sur l’onglet Settings (Paramètres).
- Dans la section Feature Layer (Couche d’entités), sous-section Editing (Mise à jour), cochez la case Enable editing (Activer la mise à jour).
- Vous pouvez également cocher la case Keep track of created and updated features (Assurer le suivi des entités créées et mises à jour).
- Selon les stratégies de stockage de votre organisation et ses besoins en matière de sécurité, choisissez l’une des options suivantes dans la section What kind of editing is allowed (Quel type de mise à jour est autorisé ?) :
- Ajouter et mettre à jour les entités
- Ajouter, mettre à jour et supprimer des entités
Remarque :
L’option Add features (Ajouter des entités) n’est pas prise en charge.
- Si vous avez coché la case Keep track of created and updated features (Effectuer le suivi des entités créées et mises à jour), choisissez une option dans les sections What features can editors see (Quelles entités les éditeurs peuvent-ils voir ?) et What features can editors edit (Quelles entités les éditeurs peuvent-ils mettre à jour ?) :
- Les éditeurs peuvent voir toutes les entités
- Editors can only see their own features (Les éditeurs peuvent uniquement voir leurs propres entités)
- Les éditeurs ne peuvent pas voir les entités, même celles qu’ils ajoutent
Il est recommandé de conserver la valeur par défaut pour Editors can only see their own features (Les éditeurs peuvent uniquement voir leurs propres entités) et Editors can only edit their own features (Les éditeurs peuvent uniquement mettre à jour leurs propres entités) dans ces sections.
En savoir plus sur la gestion des paramètres d’éditeur et le suivi de l’éditeur.
- Cliquez sur Save (Enregistrer).
Configurer les paramètres de partage
Pour ajouter des informations de localisation en partageant la couche d’entités, procédez comme suit :
- Cliquez sur l’onglet Overview (Vue d’ensemble), puis sur Share (Partager).
La boîte de dialogue Share (Partager) apparaît.
- Partagez avec les membres du portail de l’organisation ou les groupes.
Conseil :
Définissez l’URL de la page Overview (Vue d’ensemble) comme Config Valuechamp de DEVICE_MONITOR_ENDPOINT_FEATURESERVICE dans la table de configuration Indoors.Vous pouvez examiner les points de suivi des appareils dans une carte Web.
Préparer une carte pour le suivi d’appareils
Le paquetage de cartes mobiles utilisé par votre organisation doit être mis à jour pour activer la fonction de suivi d’appareils mobiles.
En savoir plus sur la création de zones de suivi des appareils et la configuration des paramètres de partage de la localisation des appareils.
Consulter les données de suivi d’appareils
Pour créer une carte Web afin d’étudier les données de suivi et les partager avec des membres de votre organisation, procédez comme suit :
- Dans votre portail, cliquez sur Content (Contenu) et sur l’onglet My Content (Mes contenus).
- Cliquez sur Create (Créer) > Map (Carte).
- Sélectionnez la carte qui vient d’être créée et cliquez sur Open in Map Viewer (Ouvrir dans Map Viewer).
- Cliquez sur Add (Ajouter) et ajoutez la couche d’entités de suivi d’appareils.
- Zoomez sur votre site et cliquez sur Save (Enregistrer).
- Cliquez sur Share (Partager) et sélectionnez les membres avec lesquels vous voulez partager la carte.
- Cliquez sur Done (Terminé).
Créer un tableau de bord
Un tableau de bord présente une vue des données de partage de la localisation des appareils servant à surveiller les événements ou les activités. Les tableaux de bord sont conçus pour afficher plusieurs visualisations qui fonctionnent ensemble sur un seul et même écran. Ils offrent une vue complète des données qui présente les informations essentielles en vue de la gestion des données. Vous pouvez créer un tableau de bord pour surveiller les données de partage de la localisation des appareils.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?