Projekt-JSON

Projekte werden im ArcGIS QuickCapture Designer in der Regel mit einer grafischen Bedienoberfläche konfiguriert; Sie können jedoch auch den JSON-Code des Projekts ändern.

Wenn Sie den JSON-Code des Projekts bearbeiten, können Sie die folgenden Eigenschaften ändern:

  • userInput: Eine vom Benutzer angegebene Zeichenfolge, die zum Füllen der Attribute eines Datensatzes verwendet werden kann
  • preferences: Kann auf alle in einem Projekt erfassten Datensätze angewendet werden.
  • basemap: Eine beim Überprüfen der Daten angezeigte Karte
  • dataSources: Listet die Feature-Layer auf, die von Schaltflächen in einem Projekt verwendet werden.
  • templateGroups: Stellt eine Gruppe von Schaltflächen dar.
  • templates: Stellt eine Schaltfläche dar
    • captureInfo: Legt fest, wie Daten erfasst werden, wenn eine Schaltfläche ausgewählt wird. Konfigurieren Sie diese Option, um die Karte nach der Erfassung anzuzeigen (zu Zwecken der Positionsbearbeitung) und den Anzeigetext sowie den Hinweis auf der Kartenseite anzupassen.
    • displayInfo: Legt das Aussehen einer Schaltfläche fest.
    • fieldInfo: Die Attributwerte, die für den Datensatz erfasst werden
    • cameraInfo: Legt fest, wie Fotos für den Datensatz erfasst werden.
  • tracking: Stellt den vom Projekt verwendeten Positionsfreigabe-Layer dar.

Einige dieser Eigenschaften sind Arrays weiterer Eigenschaften. In den folgenden Unterabschnitten werden die Details der Eigenschaften-Arrays beschrieben.

Voreinstellungen

Die folgenden Eigenschaften gelten für das Projekt oder alle in einem Projekt erfassten Datensätze.

EigenschaftBeschreibungFeldtyp
backgroundColor

Die Projekthintergrundfarbe als HTML-Dezimalwert.

Zeichenfolge

splitScreen

Zeigt die Schaltflächen und Karte nebeneinander an.

Boolesch

horizontalAccuracyWarning

Ein Dezimalwert in Metern, der einen empfohlenen oberen Schwellenwert für eine ausreichende horizontale Genauigkeit definiert. Mit dieser Eigenschaft wird die Farbe für die Anzeige der horizontalen Genauigkeit auf der Projektseite geändert. Der maximal zulässige Wert für diese Eigenschaft beträgt 999 Meter.

Dezimalzahl

horizontalAccuracyError

Ein Dezimalwert in Metern, der einen erforderlichen oberen Schwellenwert für eine ausreichende horizontale Genauigkeit definiert. Mit dieser Eigenschaft wird verhindert, dass der Benutzer Datensätze oder Stützpunkte erfasst, wenn der Schwellenwert überschritten wird. Der maximal zulässige Wert für diese Eigenschaft beträgt 999 Meter.

Dezimalzahl

allowEditLocation

Zulassen, dass die Position eines Punktes innerhalb einer gewissen Zeitspanne nach der Erfassung aktualisiert wird.

Boolesch

distanceThreshold

Die minimale Bewegungsentfernung in Metern vom letzten erfassten Stützpunkt oder Punkt, bevor ein neuer Stützpunkt oder Punkt erfasst werden kann. Die Standardentfernung beträgt 10 Meter.

Dezimalzahl

undoThreshold

Die Zeit in Sekunden nach der Erfassung, in der Datensätze gelöscht werden können oder in der ihre Position aktualisiert werden kann.

Dezimalzahl

adminEmail

Gibt den Empfänger der von der mobilen App generierten Dateien für die Datenwiederherstellung an.

Zeichenfolge

coordinateNotationFormat

Legt das Format der Koordinatenschreibweise für die Anzeige in der mobilen App fest. Folgende Werte werden unterstützt: UTM, USNG, MGRS, DD, DDM und DMS. Die Standardeinstellung lautet DD.

Double

Für horizontalAccuracyWarning und horizontalAccuracyError können Schwellenwerte festgelegt werden; jedoch muss der Wert von horizontalAccuracyWarning niedriger als der Wert von "horizontalAccuracyError" sein. Wenn Sie z. B. eine empfohlene horizontale Genauigkeit von 10 Metern und eine erforderliche horizontale Genauigkeit von 30 Metern festlegen und das Gerät eine Genauigkeit von 20 Metern zurückgibt, wird eine Warnung angezeigt. Wenn das Gerät eine Genauigkeit von 40 Metern zurückgibt, können Sie keine Datensätze erfassen.

Im folgenden Beispiel sind ein grauer Hintergrund, eine empfohlene horizontale Genauigkeit von 10 Metern, kein Entfernungsschwellenwert und die Administrator-E-Mail-Adresse quickcapture@esri.com festgelegt:

{
   "basemap":{

   },
   "dataSources":[

   ],
   "itemId":"",
   "preferences":{
      "splitScreen":false,
      "backgroundColor":"#f3f3f4",
      "horizontalAccuracyError":null,
      "horizontalAccuracyWarning":10,
      "distanceThreshold":null,
      "undoThreshold":10,
      "adminEmail":"quickcapture@esri.com"
   },
   "templateGroups":[

   ],
   "userInputs":[

   ],
   "version":""
}
Hinweis:

In Dezimalwerten muss ein Punkt als Dezimaltrennzeichen verwendet werden, und Tausendertrennzeichen sind nicht zulässig. Kommas werden im JSON-Editor nicht akzeptiert.

Grundkarte

Standardmäßig entspricht die Karte eines neuen Projekts der Standardgrundkarte der Organisation. Wenn sich ein Benutzer mit einem Organisationskonto an der App anmeldet, sieht er die aktuelle Standardgrundkarte der Organisation in diesem Projekt. Wenn sich der Benutzer abmeldet, wird die World Topographic-Karte von Esri angezeigt.

Mit den folgenden Eigenschaften wird eine in einem Projekt zu verwendende Karte angegeben:

EigenschaftBeschreibungFeldtyp
type

WebMap, MMPK, VTPK oder TPK Wenn das Feld den Wert NULL aufweist, wird die World Topographic-Karte von Esri verwendet.

Zeichenfolge

itemId

Die Element-ID der Karte

Zeichenfolge

useDefaultBasemap

"true" (Standard) oder "false"

Boolesch

Projektautoren können das Standardverhalten überschreiben, indem sie eine beliebige Online- oder Offline-Karte auswählen. Wenn useDefaultBasemap auf "false" eingestellt ist und das Feld itemId den Wert NULL enthält, wird im Projekt die World Topographic-Karte von Esri verwendet.

Im folgenden Beispiel wird eine erforderliche Webkarte gezeigt, die nur für den Benutzer verfügbar ist, der sie heruntergeladen hat:

{
   "basemap":{
      "type":"WebMap",
      "itemId":fae788aa91e54244b161b59725dcbb2a,
      "useDefaultBasemap":false,
      "required":true,
      "zoomLevel":null
   }
}

Wenn auf einer Karte im Projekt den Benutzern die zuvor übermittelten Daten angezeigt werden sollen, können Sie eine Webkarte konfigurieren, die die Projektdaten enthält, und sie als Grundkarte festlegen.

  • Die Webkarte muss mindestens die gleichen Layer wie das Projekt enthalten. Sie kann auch weitere Layer enthalten.
  • Die in der Webkarte definierte Symbolisierung wird zum Symbolisieren der gesendeten Features verwendet.
  • Auf dem Gerät erfasste Daten, die nicht gesendet wurden, werden mit der QuickCapture-Standardsymbolisierung symbolisiert. Punkte werden z. B. mit dem blauen Marker symbolisiert.

Hinweis:

Nur Karten mit dem Web Mercator-Raumbezug werden unterstützt.

Datenquellen

Mit den folgenden Eigenschaften wird ein Feature-Layer in einem Projekt identifiziert:

EigenschaftBeschreibungFeldtyp
dataSourceId

Eine eindeutige Zahl, die von QuickCapture dem Projekt zugewiesen wird, um den Layer im Array zu identifizieren. Dies ist nicht der Index des Layers im Feature-Service. Ein Projekt kann über Layer aus unterschiedlichen Feature-Services verfügen.

Integer

featureServiceItemId

Die Element-ID des Feature-Service, der den Layer enthält.

Zeichenfolge

URL

Die URL für den REST-Endpunkt des Feature-Layers (…/FeatureServer/0). Dies muss die vollständige URL sein, die den Layer-Index umfasst.

Zeichenfolge

In der Eigenschaft dataSource können ein oder mehrere Datenquellen aufgelistet werden. Im folgenden Beispiel sind zwei Layer aufgelistet, die aus zwei unterschiedlichen Feature-Services stammen:

{
   "basemap":{

   },
   "dataSources":[
      {
         "featureServiceItemId":"1f683747c06c4a7e9843a477b2ab41e0",
         "dataSourceId":0,
         "url":"https://services1.arcgis.com/e7dVfn25KpfE6dDd/arcgis/rest/services/LayerOne/FeatureServer/0"
      },
      {
         "featureServiceItemId":"2b313747c06c4a7e9843a477b2ab41e0",
         "dataSourceId":1,
         "url":"https://services1.arcgis.com/b45KpfE6dEf121/arcgis/rest/services/LayerTwo/FeatureServer/1"
      }
   ],
   "itemId":"",
   "preferences":{

   },
   "templateGroups":[

   ],
   "userInputs":[

   ],
   "version":""
}

Vorlagengruppen

Mit den folgenden Eigenschaften wird definiert, wie eine Gruppe von Schaltflächen in einem Projekt angezeigt wird. Für jede Gruppe von Schaltflächen können unterschiedliche Eigenschaften verwendet werden.

EigenschaftBeschreibungFeldtyp
name

Der Name der Gruppe

Zeichenfolge

label

Die Beschriftung, die im Projekt für die Gruppe angezeigt wird

Zeichenfolge

columns

Die Anzahl der Spalten in der Gruppe

Integer

columnSpacing

Der Abstand zwischen den Spalten

Dezimalzahl

rowSpacing

Der Abstand zwischen den Zeilen

Dezimalzahl

backgroundColor

Die Hintergrundfarbe der Gruppe als HTML-Hexadezimalwert

Zeichenfolge

outlineColor

Die Umrissfarbe der Gruppe als HTML-Hexadezimalwert

Zeichenfolge

expanded

Der Standardwert lautet "true".

Boolesch

labelColor

Die Farbe der Gruppenbeschriftung als HTML-Hexadezimalwert

Zeichenfolge

Vorlage

Mit den folgenden Eigenschaften wird ein Feature-Layer identifiziert, der einen Bezug zu einer Schaltfläche aufweist:

EigenschaftBeschreibungFeldtyp
id

Die UUID für die Schaltfläche

Text

dataSourceId

Referenziert den Ziel-Layer, in dem Daten gespeichert werden. Die ID gibt die Datenquelle im Datenquellen-Array an.

Integer

captureInfo

Mit den folgenden Eigenschaften wird angegeben, wie Daten erfasst werden:

EigenschaftBeschreibungFeldtyp
exclusivityGroup

Ein Wert, der eine exklusive Gruppe beschreibt. Alle Vorlagen mit demselben Wert werden in einer Gruppe platziert, für die "exclusive" auf "true" festgelegt ist. Wenn dieser Wert festgelegt ist, kann immer nur eine Schaltfläche mit dem Wert aktiv sein.

Text

type

"esriGeometryPoint", "esriGeometryPolyline" oder "esriGeometryPolygon"

Zeichenfolge

continuous

Ist für Linien und Polygone immer "true"

Boolesch

editMap

Optionen für die Kartenbearbeitung. Sie können festlegen, dass die Karte nach der Erfassung angezeigt wird (Standardwert ist "false"), den Kartentitel anpassen (Standardwert ist NULL) oder den Kartenhinweis anpassen (Standardwert ist NULL).

Zeichenfolge

displayInfo

Die folgenden Eigenschaften geben an, wie eine Schaltfläche dargestellt wird:

EigenschaftBeschreibungFeldtyp
label

Die Beschriftung auf der Schaltfläche

Zeichenfolge

shape

Rechteck, abgerundet oder Kreis

Zeichenfolge

size

"Small", "medium", "large", "xlarge" oder "xxlarge"

Zeichenfolge

color

Die Farbe des Schaltflächenhintergrunds als HTML-Hexadezimalwert

Zeichenfolge

outlineColor

Die Farbe des Schaltflächenumrisses als HTML-Hexadezimalwert

Zeichenfolge

outlineWidth

Die Stärke des Schaltflächenumrisses

Dezimalzahl

labelColor

Die Farbe der Schaltflächenbeschriftung als HTML-Hexadezimalwert

Zeichenfolge

labelFontSize

Die Schriftgröße für die Schaltflächenbeschriftung

Integer

labelFontWeight

Fett oder normal

Zeichenfolge

shadowColor

Wenn kein Wert angegeben ist, wird der von der Gruppe verwendete backgroundColor-Wert verwendet. Das bedeutet, dass der Schatten nicht sichtbar ist.

Zeichenfolge

image

Das Bild, das mit der Schaltfläche im PNG-, JPG- oder SVG-Format angezeigt werden soll. Alle Bilder werden als Ressourcen des Elements im Bildordner gespeichert.

Zeichenfolge

fieldInfo

Die folgenden Eigenschaften geben die Attributinformationen an, die beim Tippen auf eine Schaltfläche in den Feature-Service eingegeben werden. In der Regel verwendet ein Projektautor zum Auffüllen der Felder des erfassten Datensatzes vordefinierten Text oder Feldvariablen.

EigenschaftBeschreibungFeldtyp
fieldName

Der Name des Feldes

Zeichenfolge

value

Kann jede der in diesem Thema aufgeführten Eigenschaften enthalten.

Zeichenfolge

cameraInfo

Die folgenden Eigenschaften geben an, wie Fotos in einem Projekt erfasst und gespeichert werden können. Wenn Sie das Erfassen von Fotos für eine Schaltfläche aktivieren, ist das Foto standardmäßig immer erforderlich. Sie können die Aufnahme von Fotos als optional festlegen, indem Sie die Eigenschaft required auf den Wert "false" festlegen. Die Fotoqualität geben Sie an, indem Sie die Eigenschaft imageSize anpassen.

EigenschaftBeschreibungFeldtyp
mode

None (Standard): Mit dem Feature sind keine Fotos verknüpft.

Automatic: Das Foto wird ohne Bestätigung durch den Benutzer aufgenommen, sobald die Schaltfläche ausgewählt wird.

Manual: Die Kameravorschau wird angezeigt, und die Aufnahme von Fotos wird durch den Benutzer gesteuert.

Zeichenfolge

imageSize

Small (320 Pixel auf der längsten Kante), medium (Standardwert, 640 Pixel auf der längsten Kante), large (1.280 Pixel auf der längsten Kante) oder unrestricted (keine Größenbeschränkung) Wird die Bildgröße von der App angepasst, bleibt das Seitenverhältnis des aufgenommenen Bildes erhalten.

Zeichenfolge

required

"true" (Standard) oder "false"

Boolesch

maxPhotos

Maximale Anzahl an Fotos, die von einer Schaltfläche aufgenommen werden

Integer

minPhotos

Minimale Anzahl an Fotos, die von einer Schaltfläche aufgenommen werden

Integer

Im folgenden Beispiel wird ein optionales Foto ohne Bestätigung erfasst:

{
   "mode":"automatic",
   "imageSize":"unrestricted",
   "required":true
}

notificationsInfo

Mit den folgenden Eigenschaften werden die Benachrichtigungen für ein Projekt konfiguriert. Derzeit werden nur Benachrichtigungen in Form von Webhooks unterstützt.

EigenschaftBeschreibungFeldtyp
id

Eindeutige ID des Webhooks (im Rahmen des Projekts)

Zeichenfolge

name

Name des Webhooks

Zeichenfolge

active

"true" oder "false" (Standard)

Boolesch

created

Datum und Uhrzeit der Webhook-Erstellung

Datum

modified

Datum und Uhrzeit der letzten Änderung am Webhook

Datum

events

Ereignistyp, der den Webhook auslöst. Es wird nur das Ereignis addData unterstützt.

Zeichenfolge

targetLayerUrl

Feature-Service-Layer (einschließlich Layer-Index), mit dem der Webhook konfiguriert wurde. Ereignisse vom Typ addData werden durch Aktualisierungen an diesem Layer ausgelöst.

Zeichenfolge

webhookUrl

Webhook-URL, an die die Payload gesendet wird

Zeichenfolge

includePortalInfo

"true" (Standard) oder "false"

Boolesch

includeProjectInfo

"true" (Standard) oder "false"

Boolesch

includeServiceRequest

"true" (Standard) oder "false"

Boolesch

includeServiceResponse

"true" (Standard) oder "false"

Boolesch

Im folgenden Beispiel ist ein einzelner Webhook gezeigt, jedoch können in einem Projekt auch mehrere Webhooks konfiguriert werden:

 "notificationsInfo": {
    "webhooks": [
      {
        "active": true,
        "created": 1502880915000,
        "events": [
          "addData"
        ],
        "id": "ByCjvHpPz",
        "includePortalInfo": true,
        "includeProjectInfo": true,
        "includeServiceRequest": true,
        "includeServiceResponse": true,
        "includeUserInfo": true,
        "modified": 1502881754000,
        "name": "Display name",
        "targetLayerUrl": "https://<serviceurl including layer index>",
        "webhookUrl": "https://<webhookserviceurl>"
      }
    ]
  }

Feldvariablen

Wenn Sie diese Variablen im JSON-Editor verwenden, müssen Sie den Variablennamen im Format ${variable_name} eingeben. Im folgenden Beispiel wird die Variable username einem Feld mit dem Namen NameOfUser zugewiesen:

{
   "fieldName":"NameOfUser",
   "value":"${username}"
}

Benutzereingabevariable

Für die Variable userInput wird vom App-Benutzer ein Wert angegeben; sie kann auf eine oder mehrere Schaltflächen in einem Projekt angewendet werden. Der Wert wird vom App-Benutzer eingegeben. Der Projektautor muss jedoch die Schaltflächen und Felder definieren, auf die die Variable angewendet wird.

EigenschaftBeschreibungFeldtyp
Id

Die eindeutige ID der Benutzereingabe

Zeichenfolge

label

Die Beschriftung wird in der mobilen App angezeigt, um den Wert zu beschreiben, dessen Eingabe durch den Endbenutzer erwartet wird. Die Beschriftung kann z. B. "RouteNo", "CostCenter" oder "RouteNo-CostCenter" lauten.

Zeichenfolge

fieldType

Der Typ des Feldes, in das der Wert der Benutzereingabe geschrieben werden kann. Die Optionen sind auf esriFieldTypeString, esriFieldTypeDouble und esriFieldTypeInteger beschränkt.

Zeichenfolge

required

Legt fest, ob der Endbenutzer der mobilen App den Benutzereingabewert eingeben muss, bevor auf eine Schaltfläche getippt werden kann (Projektmodus), oder erst eingeben kann, nachdem auf eine Schaltfläche getippt wurde (Schaltflächenmodus).

Boolesch

domain

Steuert die Benutzereingabe und ist auf einen numerischen Bereich (range), eine Liste vordefinierter Werte (codedValue) oder die Texteingabe mit optionaler Verwendung einer Eingabemaske (userDefined) beschränkt.

Zeichenfolge

mode

Steuert, ob der Benutzer beim Starten des Projekts (project) oder beim Tippen auf eine Schaltfläche (button) zur Eingabe aufgefordert wird.

Zeichenfolge

multiline

Ermöglicht die Eingabe mehrerer Textzeilen. Dies ist nur anwendbar, wenn domain auf "userDefined" festgelegt ist.

Boolesch

autoCompleteMaxEntries

Gibt die Anzahl der vom Benutzer eingegebenen Werte an, die für eine Projekt-Benutzereingabe gecacht werden.

Integer

showEvent

Steuert, ob das Dialogfeld für Schaltflächen-Benutzereingaben zu Beginn oder am Ende der Datensatzerfassung angezeigt wird. Die Optionen lauten "onStart" und "onEnd". Die Standardeinstellung ist "onEnd". Dies ist nur anwendbar, wenn domain auf "userDefined" festgelegt ist.

Zeichenfolge

showScanner

Steuert, ob der Barcode-Scanner in der Benutzereingabe angezeigt wird. Der Standardwert ist "false". Dies ist nur anwendbar, wenn domain auf "userDefined" festgelegt ist.

Boolesch

dateTime

Steuert die Eingabe von Datum und Zeit. Dies ist nur anwendbar, wenn domain auf "userDefined" festgelegt ist. Kann auf einen der folgenden Werte beschränkt werden: "defaultValue", "displayTime", "maxValue" und "minValue."

Datum

Informationen darüber, wann die einzelnen Modi verwendet werden sollten, finden Sie unter Projekt-Benutzereingabevariable und Schaltflächen-Benutzereingabevariable.

Es wird empfohlen, Domänen im Feature-Service zu verwalten. Der Web Designer liest Domäneninformationen direkt aus dem Feature-Service, um die Benutzereingabe zu erstellen. Die Domäneninformationen werden nicht automatisch in den JSON-Code des Projekts geschrieben.

Die mobile App liest Domäneninformationen direkt aus dem Feature-Service und speichert sie lokal auf dem Gerät. Wenn Sie Domänenwerte im Feature-Service hinzufügen oder ändern, müssen Sie das Projekt erneut speichern, damit der Benutzer zum Aktualisieren des Projekts aufgefordert wird und die Änderungen für ihn angezeigt werden.

Vorsicht:

Projektautoren können Domäneninformationen manuell im JSON-Code des Projekts definieren. Hierdurch werden alle aus dem Feature-Service gelesenen Informationen überschrieben. Der Autor muss sicherstellen, dass alle definierten Werte innerhalb der Beschränkungen der im Feature-Service definierten Werte liegen. Eine manuelle Definition im JSON-Code kann beispielsweise sinnvoll sein, wenn Sie im Projekt eine Teilmenge codierter Werte aus einer weitaus umfangreicheren Liste im Feature-Service definieren möchten.

Im folgenden Beispiel wird gezeigt, wie eine Benutzereingabe für eine range-Domäne definiert wird, um die Dateneingabe auf eine Zahl zwischen 1 und 100 zu beschränken:

{
   "userInputs":[
      {
         "autoCompleteMaxEntries":5,
         "id":"001",
         "label":"Enter route number",
         "fieldType":"esriFieldTypeInteger",
         "required":true,
         "mode":"project",
         "domain":{
            "type":"range",
            "name":"route no",
            "range":[
               1,
               100
            ]
         }
      }
   ]
}

Im folgenden Beispiel wird gezeigt, wie eine Benutzereingabe für eine codedValue-Domäne definiert wird, um die Dateneingabe auf die Auswahl von einem von drei Werten zu beschränken:

{
   "userInputs":[
      {
         "autoCompleteMaxEntries":5,
         "id":"001",
         "label":"Enter class",
         "fieldType":"esriFieldTypeString",
         "required":true,
         "mode":"project",
         "domain":{
            "type":"codedValue",
            "name":"Class",
            "codedValues":[
               {
                  "name":"Principle",
                  "code":"Principle"
               },
               {
                  "name":"Classified (Non-principle)",
                  "code":"Classified"
               },
               {
                  "name":"Unclassified",
                  "code":"Unclassified"
               }
            ]
         }
      }
   ]
}

Im folgenden Beispiel wird gezeigt, wie eine Text-Benutzereingabe vom Typ "userDefined" definiert wird, um das Scannen eines QR-Codes am Beginn der Erfassung einer Zeile zu ermöglichen:

{
   "userInputs":[
      {
         "id":"001",
         "label":"Scan QR code",
         "fieldType":"esriFieldTypeString",
         "required":true,
         "mode":"button",
         "domain":{
            "type":"userDefined",
            "name":"line identifier",
            "multiline":false,
            "showScanner":true,
            "showEvent":"onStart"
            "hint":"Scan QR code or type the identifier of the line to be captured"
         }
      }
   ]
}

Im folgenden Beispiel wird gezeigt, wie eine Benutzereingabe für eine userDefined-Domäne definiert wird, um die Eingabe eines Datums zwischen Juni und Dezember 2022 zu ermöglichen:

{
   "userInputs":[
      {
         "id":"001",
         "label":"Enter date",
         "fieldType":"esriFieldTypeDate",
         "required":true,
         "mode":"button",
         "domain":{
            "type":"userDefined",
            "name":"followup date",
            "multiline":false,
            "hint":"Enter date between June and December 2022",
            "dateTime": {
               "defaultValue": "${captureTime}",
               "displayTime": true,
               "maxValue": "2022-06-01T00:00:00.000Z",
               "minValue": "2022-12-31T24:59:00.000Z"
            }
         }
      }
   ]
}

Im folgenden Beispiel wird gezeigt, wie eine Benutzereingabe für eine userDefined-Domäne definiert wird, um die Dateneingabe auf vierstellige Routen-ID zu beschränken:

{
   "userInputs":[
      {
         "id":"001",
         "label":"Enter route number",
         "fieldType":"esriFieldTypeString",
         "required":true,
         "mode":"button",
         "domain":{
            "type":"userDefined",
            "name":"route no",
            "inputMask":"9999",
            "multiline":false,
            "hint":"Enter a four digit route id"
         }
      }
   ]
}

Nachdem userInput definiert wurde, kann die Benutzereingabe vom Projektautor für die Verwendung in einem Feld zugewiesen werden. Im folgenden Beispiel wird userInput mit der ID 001 zum Auffüllen eines Feldes mit dem Namen routeNo verwendet:

{
   "fieldInfos":[
      {
         "fieldName":"routeNo",
         "value":"${userInput:001}"
      }
   ]
}

Eingabemaske

In einer Eingabemaske wird das Format für die Dateneingabe mit Zeichen und Symbolen als Teil einer Benutzereingabevariable definiert. Wenn Sie eine Eingabemaske auf eine Benutzereingabevariable anwenden, müssen die vom Benutzer eingegebenen Werte dem spezifischen Muster entsprechen, das von der Eingabemaske definiert wird.

Um eine Eingabemaske auf Ihre Benutzereingabevariable anzuwenden, definieren Sie die Maske in der Eigenschaft userInputs.domain.inputMask.

Eine Liste aller Masken und Beispiele, die auf Benutzereingabevariablen angewendet werden können, finden Sie unter Eingabemasken.

Positionsfreigabe

Mit den folgenden Eigenschaften wird der Positionsfreigabe-Layer identifiziert:

EigenschaftBeschreibungFeldtyp
enabled

Die Nachverfolgung für ein Projekt aktivieren. Der Standardwert ist "false".

Boolesch

required

Zum Verwenden des Projekts muss die Nachverfolgung aktiviert sein. Der Standardwert ist "false".

Boolesch

lastKnownLocationsUpdateInterval

Aktualisierungshäufigkeit (in Sekunden) des letzten bekannten Positions-Layers. Der Standardwert ist 60 Sekunden. Der Mindestwert beträgt 5 Sekunden.

Dezimalzahl

tracksUploadInterval

Aktualisierungshäufigkeit (in Sekunden) des Tracks-Layers. Die Standardeinstellung ist -1 (deaktiviert). Alternativ können Sie die Option auf 600 Sekunden festlegen.

Dezimalzahl

tracksCategory

Definiert den Wert, der in das Kategoriefeld des Tracks-Layers geschrieben wird. Es kann sich um den Projektnamen, einen festen Wert oder einen Wert aus einer Projekt-Benutzereingabe handeln. Standardmäßig wird der Projektname verwendet.

Text

lastKnownLocationsCategory

Definiert den Wert, der in das Kategoriefeld des Layers mit den letzten bekannten Standorten geschrieben wird. Es kann sich um den Projektnamen, einen festen Wert oder einen Wert aus einer Projekt-Benutzereingabe handeln. Standardmäßig wird der Projektname verwendet.

Text

Im folgende Beispiel ist zu sehen, dass die Positionsfreigabe aktiviert ist, jedoch nicht für die Verwendung des Projekts erforderlich ist. Der letzte bekannte Standort wird alle 60 Sekunden aktualisiert, Tracks werden alle 600 Sekunden aktualisiert. In das Kategoriefeld des Tracks-Layers und des Layers mit den letzten bekannten Standorten wird der Projektname geschrieben.

{
   "tracking": {
      "enabled": true,
      "required": false,
      "lastKnownLocationsUpdateInterval": 60,
      "tracksUploadInterval": 600,
      "tracksCategory": "${projectName}",
      "lastKnownLocationsCategory": "${projectName}"
   }
}