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 l’IPS | 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 IPS 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 votre 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
Suivez la procédure décrite ci-après pour configurer un Spatiotemporal Big Data Store pour le portail.
- Installez ArcGIS Data Store.
- Créez un Spatiotemporal Big 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
Créez une couche d’entités pour le suivi d’appareils.
- 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.
- Saisissez 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 du service et assurez-vous qu’il existe bien.
Créer une couche d’entités
Créez une couche d’entités pour le suivi d’appareils.
- Accédez à https://<my indoors portal>/server/rest/admin/services/Hosted/<name>/FeatureServer/addToDefinition.
- Saisissez le modèle .json dans la zone 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 }] }
- Accédez à https://<my indoors portal>/portal/home/content et assurez-vous que l’élément existe bien une fois la procédure terminée.
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.
- 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 est le type de mise à jour 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 dans cette version.
- 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 l’option requise 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
Remarque :
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, partagez la couche d’entités.
- 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 ou vos groupes.
Conseil :
Définissez l’URL de la page Overview (Vue d’ensemble) comme champ Config Value de DEVICE_MONITOR_ENDPOINT_FEATURESERVICE dans la table de configuration Indoors .Vous pouvez maintenant afficher les points de suivi des appareils dans une carte Web.
Préparer votre 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
Vous pouvez créer une carte Web pour étudier les données de suivi et les partager avec d’autres membres de votre organisation.
- 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 qui permet de 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 et attrayante de vos données, destinée à présenter les informations essentielles qui facilitent la prise de décision. 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 ?