Verfügbar mit der Erweiterung "ArcGIS Indoors Maps".
ArcGIS Indoors unterstützt die Positionsfreigabe von Geräten über einen benutzerdefinierten Feature-Service, der auf einem mit dem Portal verknüpften Big Data Store vom Typ "spatiotemporal" gehostet wird. Sie können diesen Service anstelle des Location Sharing Service verwenden.
Vorsicht:
Der Service unterstützt nur das Erfassen von Geräte-Tracks (historische Positionen). Die Funktion zum Suchen nach Kollegen und deren letztem bekannten Standort ist mit diesem Setup nicht verfügbar.
Die mobile Indoors-App meldet Positionen immer dem Positionsfreigabe-Feature-Layer, insofern im Portal aktiviert. Dies gilt auch dann, wenn Sie einen benutzerdefinierten Feature-Layer konfigurieren.
Geräte-Tracking-Feature-Schema
In der folgenden Tabelle werden die Felder und Datentypen der Tracking-Feature-Class beschrieben:
Feldname | Feld-Alias | Datentyp | Beschreibung | Beispielwerte |
---|---|---|---|---|
activity | Aktivität | esriFieldTypeInteger | Vom Gerät gemeldete Aktivität (Stationär, Gehen, Fahren usw.) | 0, 1, 2, ... |
altitude | Höhe | esriFieldTypeDouble | Vom GPS-Empfänger am Gerät gemeldeter Höhenwert | 0,5, 1,0, 5,0 |
app_id | App-ID | esriFieldTypeString | Name der App | ArcGIS Indoors (Konstante) |
background_mode | Hintergrundmodus | esriFieldTypeSmallInteger | Status der App bei Ausführung auf dem Gerät (Hintergrund oder Vordergrund) | 0, 1 |
battery_percentage | Akkuprozentsatz | esriFieldTypeDouble | Vom Gerät gemeldeter Akkustand | 1-100 |
battery_state | Akkustatus | esriFieldTypeInteger | Vom Gerät gemeldeter Akkuzustand (Laden, Entladen) | 1, 2 |
course | Richtung | esriFieldTypeDouble | Richtung des eingeschlagenen Kurses relativ zu geographisch Nord | 0-359 |
device_id | Geräte-ID | esriFieldTypeString | Eindeutige Kennung eines Gerätes, auf dem die App ausgeführt wird | GUID |
device_type | Gerätetyp | esriFieldTypeString | Fabrikat und Modell des Gerätes | iPhone 7, Pixel 2 |
floor | Etage | esriFieldTypeInteger | Vom Indoor Positioning System gemeldete vertikale Reihenfolge | 0, 1, 2 |
horizontal_accuracy | Horizontale Genauigkeit | esriFieldTypeDouble | Unsicherheitsradius der Breitengrad- und Längengradwerte in Metern | 0,5, 1,0, 2,5 |
latitude | Latitude | esriFieldTypeDouble | Vom GPS-Empfänger am Gerät gemeldeter Breitengradwert | -90 bis 90 |
location_source | Positionsquelle | esriFieldTypeString | Quelle des von ELSS gemeldeten Indoor-Positioning-System-Signals | BLE, WLAN, GPS |
location_timestamp | Positions-Zeitstempel | esriFieldTypeDate | Datum und Zeit, zu der die Positionsinformation zurückgeschrieben wurde | 21.02.2019 22:46 |
longitude | Longitude | esriFieldTypeDouble | Vom GPS-Empfänger am Gerät gemeldeter Längengradwert | -180 bis 180 |
session_id | Sitzungs-ID | esriFieldTypeString | Wert zur Darstellung der Tracking-Sitzung | Tracking Note |
signal_strength | Signalstärke | esriFieldTypeDouble | Empfangsfeldstärke (RSSI) | -1, -90 |
speed | Geschwindigkeit | esriFieldTypeDouble | Geschwindigkeit der von den Gerätesensoren gemeldeten Bewegung | 1,0 (Meter pro Sekunde) |
user_id | Benutzer-ID | esriFieldTypeString | Für die Anmeldung bei der App verwendeter Benutzername | user_Indoors |
vertical_accuracy | Vertikale Genauigkeit | esriFieldTypeDouble | Vertikale Genauigkeit des Höhenwertes | 0,0, 0,5, 1,0 |
Erstellen des Geräte-Tracking-Feature-Layers
Im Portal muss ein Feature-Layer eingerichtet werden, und zum Speichern von Standortdaten muss ein Feature-Layer für das Geräte-Tracking-Schema erstellt werden. Empfohlen wird ein Big Data Store vom Typ "spatiotemporal", da dieser zur Verwaltung großer Mengen an Tracking-Daten skaliert werden kann.
Einrichten eines Big Data Store vom Typ "spatiotemporal"
Führen Sie die folgenden Schritte aus, um einen Big Data Store vom Typ "spatiotemporal" für das Portal einzurichten:
- Installieren Sie ArcGIS Data Store.
- Erstellen Sie einen Data Store vom Typ "spatiotemporal".
Hinweis:
Navigieren Sie zu https://<my big data store>/arcgis/datastore/, um den Konfigurationsstatus zu bestätigen und sicherzustellen, dass der im Installationsprozess angegebene ArcGIS Enterprise-Server aufgeführt ist.
Erstellen eines Feature-Layers
Führen Sie die folgenden Schritte aus, um einen Feature-Layer für das Geräte-Tracking zu erstellen:
- Navigieren Sie zu https://<my indoors portal>/portal/sharing/rest/login, und melden Sie sich mit dem Konto des primären Administrators an.
- Wechseln Sie zu https://<my indoors portal>/sharing/rest/content/users/<admin>/createService.
- Geben Sie die JSON-Vorlage im Textfeld Parameter erstellen ein, und klicken Sie auf Service erstellen.
{ "name" : "DeviceTracking_BDS", "editorTrackingInfo": { "enableEditorTracking": true, "enableOwnershipAccessControl": true, "allowOthersToUpdate": false, "allowOthersToDelete": false, "allowOthersToQuery": false }, "capabilities" : "Create,Delete,Query,Update,Editing", options: {"dataSourceType":"spatiotemporal"} }
Hinweis:
Notieren Sie sich beim Erstellen des Service die Service-URL, und stellen Sie sicher, dass dieser tatsächlich vorhanden ist.
Erstellen eines Feature-Layers
Führen Sie die folgenden Schritte aus, um einen Feature-Layer für das Geräte-Tracking zu erstellen:
- Wechseln Sie zu https://<my indoors portal>/server/rest/admin/services/Hosted/<name>/FeatureServer/addToDefinition.
- Geben Sie die JSON-Vorlage im Textfeld Eingabe ein, und klicken Sie auf addToDefinition.
{ "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 }] }
- Navigieren Sie zu https://<my indoors portal>/portal/home/content, und stellen Sie sicher, dass das Element vorhanden ist, nachdem der Prozess erfolgreich abgeschlossen wurde.
Konfigurieren von Sicherheitseinstellungen
Konfigurieren Sie die Sicherheitseinstellungen für den Geräte-Tracking-Feature-Layer entsprechend den Sicherheitsanforderungen Ihrer Organisation.
Führen Sie die folgenden Schritte aus, um die Sicherheitseinstellungen zu konfigurieren:
- Klicken Sie im Portal auf die Registerkarte Einstellungen.
- Aktivieren Sie im Abschnitt Feature-Layer im Unterabschnitt Bearbeitung das Kontrollkästchen Bearbeitung aktivieren.
- Aktivieren Sie optional das Kontrollkästchen Erstellte und aktualisierte Features verfolgen.
- Wählen Sie je nach Speicherrichtlinien und Sicherheitsanforderungen der Organisation eine der Optionen im Abschnitt Welche Art von Bearbeitung ist zulässig? aus:
- Features hinzufügen und aktualisieren
- Features hinzufügen, aktualisieren und löschen
Hinweis:
Die Option Features hinzufügen wird nicht unterstützt.
- Wenn Sie das Kontrollkästchen Erstellte und aktualisierte Features verfolgen aktiviert haben, wählen Sie eine Option für die Abschnitte Welche Features sind für Editoren sichtbar? und Welche Features können Editoren bearbeiten? aus:
- Editoren können alle Features anzeigen
- Editoren können nur eigene Features anzeigen
- Features sind für Editoren nicht sichtbar; dies gilt auch für Features, die sie hinzufügen.
Es wird empfohlen, die Standardeinstellung Editoren können nur eigene Features anzeigen und Editoren können nur eigene Features bearbeiten für diese Abschnitte beizubehalten.
Weitere Informationen zum Verwalten von Editor-Einstellungen und zum Editor-Tracking
- Klicken Sie auf Speichern.
Konfigurieren der Freigabeeinstellungen
Führen Sie die folgenden Schritte aus, um Positionsinformationen durch die Freigabe des Feature-Layers hinzuzufügen:
- Klicken Sie auf die Registerkarte Übersicht und auf Freigeben.
Das Dialogfeld Freigeben wird angezeigt.
- Aktivieren Sie die Freigabe für die Mitglieder des Organisations-Portals oder für Gruppen.
Tipp:
Legen Sie die URL auf der Seite Übersicht als Config ValueFeld für DEVICE_MONITOR_ENDPOINT_FEATURESERVICE in der Tabelle "Indoors Configuration" fest.Sie können die Geräte-Tracking-Punkte auf einer Webkarte überprüfen.
Vorbereiten einer Karte für das Geräte-Tracking
Zum Aktivieren der Geräte-Tracking-Funktion der mobilen Apps muss das von Ihrer Organisation verwendete mobile Kartenpaket aktualisiert werden.
Weitere Informationen zum Erstellen von Tracking-Zonen für das Geräte-Tracking und zum Konfigurieren der Einstellungen für die Geräte-Positionsfreigabe
Anzeigen von Geräte-Tracking-Daten
Führen Sie die folgenden Schritte aus, um eine Webkarte zum Anzeigen von Tracking-Daten zu erstellen und für Mitglieder der Organisation freizugeben:
- Klicken Sie im Portal auf Inhalt, und klicken Sie auf die Registerkarte Eigene Inhalte.
- Klicken Sie auf Erstellen > Karte.
- Wählen Sie die neu erstellte Karte aus, und klicken Sie auf In Map Viewer öffnen.
- Klicken Sie auf Hinzufügen, und fügen Sie den Geräte-Tracking-Feature-Layer hinzu.
- Zoomen Sie auf den Standort, und klicken Sie auf Speichern.
- Klicken Sie auf Freigeben, und wählen Sie die Mitglieder aus, für die Sie die Karte freigeben möchten.
- Klicken Sie auf Fertig.
Erstellen eines Dashboards
Ein Dashboard ist eine Ansicht von Geräte-Positionsfreigabe-Daten, die Sie zur Überwachung von Ereignissen oder Aktivitäten einsetzen können. In Dashboards werden mehrere Visualisierungen angezeigt, die auf einem Bildschirm zusammenwirken. Durch eine umfassende Ansicht der Daten liefern sie Erkenntnisse für das Datenmanagement. Sie können ein Dashboard erstellen, das Sie bei der Überwachung von Geräte-Positionsfreigabe-Daten unterstützt.