Das Werkzeug Features verbinden verwendet Arcade-Ausdrücke, um Verbindungsbedingungen festzulegen. In einigen Fällen kann es erforderlich sein, eine Bedingung festzulegen, um Features auszuwählen, die in die Verbindung aufgenommen werden sollen. Sie können einfache Verbindungsbedingungen (z. B. field a > field c) sowie erweiterte Bedingungen festlegen. Die Bedingungen werden für jedes Feature getestet, um zu ermitteln, was analysiert wird. Die Berechnungen erfolgen, wenn die Analyse in ArcGIS GeoAnalytics Server ausgeführt wird.
In ArcGIS Enterprise 10.6 und höher werden Ausdrücke mit Arcade formatiert. In Arcade werden Feldnamen in Features verbinden als $target["field name"] und $join["field name"] oder $target.fieldname und $jon.fieldname formatiert. Die erste Option, $target["field name"] und $join["field name"], ist erforderlich, wenn ein Feldname ein Leerzeichen enthält. Diese Option wird in allen folgenden Beispielen verwendet.
Hinweis:
Features verbinden erfordert zwei Eingaben: einen Ziel-Layer und einen Join-Layer. Dementsprechend muss jeder Arcade-Ausdruck in Features verbinden das verwendete Dataset angeben. Zum Beispiel wird eine Operation zum Berechnen, ob ein Feld im Ziel-Layer field1 größer als ein Feld im Join-Layer field2 ist, mit dem folgenden Ausdruck beschrieben: $target["field1"] > $join["field2"]. Dies unterscheidet sich von den Ausdrücken in anderen GeoAnalytics Tools, bei denen das Format $feature["fieldname"] verwendet wird.Weitere Informationen zu Arcade-Ausdrücken
Von den folgenden Werkzeugen werden Arcade-Ausdrücke in GeoAnalytics Server verwendet:
- Tracks rekonstruieren: Pufferausdrücke
- Puffer erstellen: Pufferausdrücke
- Features verbinden: Verbinden von Features über Start- und Endausdrücke
- Feld berechnen: Berechnen von Feldwerten
Vorversion:
Die Erweiterung ArcGIS GeoAnalytics Server wird in ArcGIS Enterprise abgekündigt. Die letzte Version von GeoAnalytics Server ist in ArcGIS Enterprise 11.3 enthalten. Diese Werkzeuge stehen in ArcGIS Enterprise 11.3 und früheren Versionen zur Verfügung.
Beispiele für mathematische Operatoren und Funktionen
Mit Ausdrücken können Zahlen mathematisch verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt.
Weitere Informationen zu den mathematischen Operationen und Funktionen in Arcade
Operator | Erläuterung | Beispiel | Ergebnis |
---|---|---|---|
a + b | a plus b. | fieldname enthält den Wert 1,5 $target["fieldname"] + 2.5 | 4,0 |
a - b | a minus b. | fieldname enthält den Wert 3,3 $target["fieldname"]- 2.2 | 1.1 |
a * b | a mal b. | fieldname enthält den Wert 2,0 $join["fieldname"] * 2.2 | 4,4 |
a / b | a dividiert durch b. | fieldname enthält den Wert 4,0 $join["fieldname"] / 1.25 | 3.2 |
abs( a ) | Gibt den absoluten (positiven) Wert von a zurück. | fieldname enthält den Wert -1,5 abs($target["fieldname"]) | 1.5 |
log( a ) | Gibt den natürlichen Logarithmus (Basis e) von a zurück. | fieldname enthält den Wert 1 log($join["fieldname"]) | 0 |
sin( a ) | Gibt den trigonometrischen Sinus von a zurück. Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt. | fieldname enthält den Wert 1,5707 sin($target["fieldname"]) | 1 |
cos( a ) | Gibt den trigonometrischen Cosinus von a zurück. Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt. | fieldname enthält den Wert 0 cos($join["fieldname"]) | 1 |
tan( a ) | Gibt den Tangens von a zurück. Von der Eingabe wird angenommen, dass es sich um einen Winkel in Radiant handelt. | fieldname enthält den Wert 0 tan($target["fieldname"]) | 0 |
sqrt( a ) | Gibt die Quadratwurzel von a zurück. | fieldname enthält den Wert 9 sqrt($join["fieldname"]) | 3 |
min( a, b ) | Gibt von a und b die Zahl mit dem niedrigsten Wert zurück. | fieldname enthält den Wert 1,5 und den Wert -3 min($join["fieldname"], -3) | -3 |
max( a, b ) | Gibt von a und b die Zahl mit dem höchsten Wert zurück. | fieldname1 enthält den Wert 1,5, und fieldname2 enthält den Wert -3 max($target["fieldname1"], $join["fieldname2"]) | 1.5 |
constrain(<value>,<low>,<high>) | Gibt den Eingabewert zurück, sofern dieser innerhalb der Grenzwerte liegt. Wenn der Eingabewert kleiner als der niedrige Wert ist, wird der niedrige Wert zurückgegeben. Wenn der Eingabewert größer als der hohe Wert ist, wird der hohe Wert zurückgegeben. | constrain($target["distance"], 0, 10) constrain($join['Store dist'], 6, distance) | Gibt 0 zurück, wenn distance kleiner als 0 ist, 10, wenn distance größer als 10 ist, und ansonsten distance. Gibt 6 zurück, wenn Store dist kleiner als 6 ist, distance, wenn Store dist größer als distance ist, und ansonsten Store dist. |
Multiplikationsbeispiel für einen Verbindungsbedingungsausdruck mit einem Feld im Ziel-Dataset.
$target["Distance"] * 2 > $join["DistField"]
Beispiele für Textfunktion
Mit Verbindungsbedingungsausdrücken kann Text verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt.
Weitere Informationen zu Textfunktionen in Arcade
Operator | Erläuterung | Beispiel | Ergebnis |
---|---|---|---|
concatenate( <values>, <separator>) | Verbindet Werte und gibt eine Zeichenfolge zurück.
| fieldname enthält einen Wert von GeoAnalytics. Concatenate ([$target["fieldname"], "is", "great!"], ' ') | GeoAnalytics is great! |
find(<searchText>, <text>, <startPos>) | Sucht eine Zeichenfolge in einer Zeichenfolge. Platzhalter werden nicht unterstützt.
| fieldname1 enthält den Wert 14NorthStreet, und fieldname2 enthält den Wert North find($target["fieldname2"], $join["fieldname1"]) | 2 |
lower(<value>) | Ändert eine Zeichenfolge in Kleinbuchstaben.
| fieldname enthält einen Wert von GEOANALYTICS. lower($join["fieldname"]) | GeoAnalytics |
Textbeispiel mit find und lower.
find(("north"), lower("146NorthStreet")) == False
Beispiele für Datumsfunktionen
Mit Verbindungsbedingungsausdrücken können Datumswerte verarbeitet werden. In der folgenden Tabelle werden Beispiele für verfügbare Operationen gezeigt.
Weitere Informationen zu Datumsfunktionen in Arcade
In Arcade ist der Wertebereich für Monate 0 (Januar) bis 11 (Dezember), für Tage 1 bis 31, für Stunden 0 (12:00 Uhr) bis 23 (23:00 Uhr), für Minuten und Sekunden 0 bis 59 und für Millisekunden 0 bis 999. Bei Arcade-Datumsangaben entsprechen zurückgegebene Uhrzeitwerte dem Standort von GeoAnalytics Server.
Operator | Erläuterung | Beispiel | Ergebnis |
---|---|---|---|
date(<value>, <month>, <day>, <hour>, <minute>) | Gibt einen Wert oder einen Satz von Werten als Datumszeichenfolge aus.
| fieldname enthält einen Wert von 1476987783555. Beispiel 1: Date($target["fieldname"]) Beispiel 2: Date(2017,0,14,0) Beispiel 3: Date() | Beispiel 1: 20 Oct 2016 11:23:03 am Beispiel 2: 14 Jan 2017 12:00:00 am Beispiel 3: Gibt die aktuelle Uhrzeit zurück. |
DateDiff(<date1>, <date2>, <units>) | Subtrahiert zwei Datumsangaben und gibt die Differenz in den angegebenen Einheiten zurück.
| Beispiel 1: DateDiff(Date(2017,1,14,0), Date()) Beispiel 2: DateDiff(Date(2017,1,14,0), Date(), "Years") | Das Ergebnis variiert abhängig vom Zeitpunkt, an dem Sie diesen Befehl ausführen. Beispiel 1: -20532129137 Beispiel 2: -0,6546783768647119 |
Year(<dateValue>) | Gibt das Jahr des angegebenen Datums zurück.
| Beispiel 1: fieldname ist ein Feld vom Typ Date mit dem Wert 09 Oct 2017 04:30:43 pm. Year($join["fieldname"]) Beispiel 2: fieldname ist ein als ISO 8601-Zeichenfolge formatiertes Zeichenfolgenfeld mit dem Wert 2012-09-27. Beispiel 2: fieldname ist ein als ISO 8601-Zeichenfolge formatiertes Zeichenfolgenfeld mit dem Wert Year(Date($target["fieldname"])). | Beispiel 1: 2017 Beispiel 2: 2012 |
Konditionale Operatoren
Konditionale Anweisungen können für die folgenden Operatoren verwendet werden:
Operator | Erläuterung | Beispiel | Ergebnisse |
---|---|---|---|
a > b a < b | a ist größer als b a ist kleiner als b | 10 > 2 | Falsch |
a >= b a <= b | a ist größer als oder gleich b a ist kleiner als oder gleich b | abs(-10) >= 10 | True |
a != b | a ist ungleich b | abs(-3) != -3 | True |
a == b | a ist gleich b | abs(-5) == 5 | True |
<condition1> || <condition2> | Bedingung 1 oder Bedingung 2 ist erfüllt. | (abs(-5) == 5) || (10 < 2) | True |
<condition1> && <condition2> | Bedingung 1 und Bedingung 2 sind erfüllt. | (abs(-5) == 5) && (10 < 2) | Falsch |
Beispiele für logische Operatoren
Zusätzlich zu konditionalen Operatoren können zum Verbinden von Features auch erweiterte logische Operatoren verwendet werden, welche in der nachfolgenden Tabelle aufgeführt sind.
Weitere Informationen zu den logischen Funktionen in Arcade
Funktion | Erläuterung | Beispiel | Ergebnis |
---|---|---|---|
constrain(<value>,<low>,<high>) | Gibt den Eingabewert zurück, sofern dieser innerhalb der Grenzwerte liegt. Wenn der Eingabewert kleiner als der niedrige Wert ist, wird der niedrige Wert zurückgegeben. Wenn der Eingabewert größer als der hohe Wert ist, wird der hohe Wert zurückgegeben. | constrain( $target["distance"], 0, 10) constrain($join['Store dist'], 6, distance) | Gibt 0 zurück, wenn distance kleiner als 0 ist, 10, wenn distance größer als 10 ist, und ansonsten distance. Gibt 6 zurück, wenn Store dist kleiner als 6 ist, distance, wenn Store dist größer als distance ist, und ansonsten Store dist. |
iif(<condition>,<true value>,<false value>) | Gibt einen Wert zurück, wenn eine Bedingungsauswertung true ergibt, und einen anderen Wert, wenn die Bedingungsauswertung false ergibt. <true value> und <false value> können Folgendes sein:
| iif($target["field1"] > $join["field2"], $join["field1"], 0) iif($target["field1"] > $join["field2"], iif($target["field2"] = 0, $join["field3"], $target["field4"]), 0) | Gibt field1 zurück, wenn field1 größer als field2 ist, und ansonsten 0. Gibt das Ergebnis der zweiten iif-Funktion zurück, wenn field1 größer als field2 ist, und ansonsten 0. |
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>) | Wertet nacheinander eine Reihe von Ausdrücken aus, bis eine Auswertung true ergibt.
| when(($target["field1"] + 10) > 1, 1,($join["field2"] + 10) > 2 , 2, $target["field3"]) | Wenn field1 + 10 größer als 1 ist, wird 1 zurückgegeben. Falls nicht, wird überprüft, ob field2 + 10 größer als 2 ist. Falls ja, wird 2 zurückgegeben. Falls nicht, wird field3 zurückgegeben. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | Wertet einen Ausdruck aus und vergleicht dessen Wert mit nachfolgenden Parametern. Wenn der Ausdruck übereinstimmt, wird der nächste Parameterwert zurückgegeben. Gibt es keine Übereinstimmung, kann der letzte Parameter als Standardrückgabewert verwendet werden.
| decode($target["field1"] + 3 , $join["field1"], 1, $target["field2"], 2, 0) | Überprüft den konditionalen Wert field1 + 3 und case1 field1 auf Gleichheit. Bei true wird 1 zurückgegeben. Bei false werden field1 + 3 und field2 auf Gleichheit überprüft. Bei true wird 2 zurückgegeben; ansonsten 0. |