Skip To Content

Verwenden von Arcade-Ausdrücken mit "Daten anhängen"

Die Toolbox GeoAnalytics Tools enthält mehrere Werkzeuge, mit denen Sie einen Ausdruck anwenden können:

Die GeoAnalytics Tools, die Ausdrücke verwenden, haben unterschiedliche Zwecke und weisen Beschränkungen bezüglich der Ausdrücke auf, die angewendet werden können. Ab Version 10.6 wird Arcade von allen in GeoAnalytics Server verwendeten Ausdrücken unterstützt.

Weitere Informationen zu Arcade-Funktionen

Ausdrücke in "Daten anhängen"

Ausdrücke werden im Werkzeug "Daten anhängen" verwendet, um Werte für das angegebene Eingabe-Layer-Feld zu berechnen. Wenn Sie keine Feldwerte aus dem Layer für Anhänge anhängen, bestimmen Sie mit Ausdrücken, wie die Features aufgefüllt werden. Das Ergebnis eines Ausdrucks in "Daten anhängen" muss Werte desselben Typs wie im Feld ergeben. Die Abschnitte unten enthalten Beispiele für die Verwendung eines Ausdrucks.

Beispiele für mathematische Operatoren und Funktionen

Mit Ausdrücken in "Daten anhängen" können Zahlen mathematisch verarbeitet werden. In der folgenden Tabelle wird ein Beispiel für verfügbare Operationen gezeigt.

Weitere Informationen zu den in Arcade verfügbaren mathematischen Operationen und Funktionen

OperatorErläuterungBeispielErgebnis

a + b

a plus b.

fieldname enthält den Wert 1,5.

$feature["fieldname"] + 2,5

4,0

a - b

a minus b.

fieldname enthält den Wert 3,3.

$feature["fieldname"] - 2,2

1.1

a * b

a mal b.

fieldname enthält den Wert 2,0.

$feature["fieldname"] * 2,2

4,4

a / b

a dividiert durch b.

fieldname enthält den Wert 4,0.

$feature["fieldname"] / 1,25

3,2

abs( a )

Gibt den absoluten (positiven) Wert von a zurück.

fieldname enthält den Wert -1,5.

abs($feature["fieldname"])

1,5

log( a )

Gibt den natürlichen Logarithmus (Basis e) von a zurück.

fieldname enthält den Wert 1.

log($feature["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($feature["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($feature["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($feature["fieldname"])

0

sqrt( a )

Gibt die Quadratwurzel von a zurück.

fieldname enthält den Wert 9.

sqrt($feature["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($feature["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($feature["fieldname1"], $feature["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($feature["distance"], 0, 10)

constrain($feature['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.

Gezeigt wird ein Beispiel für das Berechnen eines Feldwertes durch Multiplikation.

$feature["Distance"] * 2

Beispiele für Textfunktion

Mit Ausdrücken in "Daten anhängen" kann Text verarbeitet werden. In der folgenden Tabelle wird ein Beispiel für verfügbare Operationen gezeigt.

Weitere Informationen zu den in Arcade verfügbaren Textfunktionen

OperatorErläuterungBeispielErgebnis

concatenate( <Werte>, <Trennzeichen>)

Verbindet Werte und gibt eine Zeichenfolge zurück.

  • values: Eine Reihe zu verkettender Zeichenfolgenwerte.
  • separator (optional): Für die Verbindung zu verwendendes Trennzeichen, wenn der Parameter values ein Array ist, oder eine zu verbindende Zeichenfolge, wenn ein Einzelwert für den ersten Parameter angegeben wird. Wenn nicht angegeben, bleibt er leer.

fieldname enthält einen Wert von GeoAnalytics.

Concatenate ([$features["fieldname"], "is", "great!"], ' ')

GeoAnalytics is great!

find(<searchText>, <text>, <startPos>)

Sucht eine Zeichenfolge in einer Zeichenfolge. Platzhalter werden nicht unterstützt.

  • searchText: Die zu suchende Unterzeichenfolge.
  • text: Der zu durchsuchende Text.
  • startPos (optional): Der nullbasierte Index der Position in der Zeichenfolge, von der aus gesucht werden soll.

fieldname1 enthält den Wert 14NorthStreet, und fieldname2 enthält den Wert North.

find($feature["fieldname2"], $feature["fieldname1"])

2

lower(<Wert>)

Ändert eine Zeichenfolge in Kleinbuchstaben.

  • value: Die Zeichenfolge, die in Kleinbuchstaben erstellt werden soll.

fieldname enthält einen Wert von GEOANALYTICS.

lower($feature["fieldname"])

GeoAnalytics

Gezeigt wird ein Textbeispiel mit find und lower.

find(("north"), lower("146NorthStreet"))

Beispiele für Datumsfunktionen

Mit Ausdrücken in "Daten anhängen" können Datumswerte verarbeitet werden. In der folgenden Tabelle wird ein Beispiel für verfügbare Operationen gezeigt.

Weitere Informationen zu den in Arcade verfügbaren Datumsfunktionen

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 (11:00 Uhr), für Minuten und Sekunden 0 bis 59 und für Millisekunden 0 bis 999. In Arcade werden Uhrzeitwerte für den Standort des GeoAnalytics Server zurückgegeben.

OperatorErläuterungBeispielErgebnis

date( <Wert>, <Monat>, <Tag>, <Stunde>, <Minute>)

Gibt einen Wert oder einen Satz von Werten als Datumszeichenfolge aus.

  • value (optional): Entweder die Anzahl von Millisekunden seit dem 1. Januar 1970 UTC oder eine Zahl, die ein Jahr darstellt. Wenn ein Jahr angegeben wird, müssen in nachfolgenden Parametern auch der Monat und der Tag angegeben werden. Dieser Wert kann auch eine Datumszeichenfolge oder ISO 8601-Zeichenfolge sein, die in ein Datum konvertiert werden soll.
  • month (optional): Der Monat (0-11), wobei 0 Januar und 11 Dezember ist.
  • day (optional): Der Tag des Monats (1-31).
  • hour (optional): Die Stunde des Tages (0-23).
  • minute (optional): Die Minute der Stunde (0-59).
  • second (optional): Die Sekunde der Minute (0-59).
  • millisecond (optional): Die Millisekunde der Sekunde (0-999).

fieldname enthält einen Wert von 1476987783555.

Beispiel 1: Date($features["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(<Datum1>, <Datum2>, <Einheiten>)

Subtrahiert zwei Datumsangaben und gibt die Differenz in den angegebenen Einheiten zurück.

  • date1: Der Datumswert, von dem ein zweites Datum subtrahiert werden soll.
  • date2: Der Datumswert, der vom ersten angegebenen Datum subtrahiert werden soll.
  • units (optional): Die Einheiten, in denen die Differenz der beiden angegebenen Datumsangaben zurückgegeben werden soll. Die folgenden Einheitentypen werden unterstützt: milliseconds, seconds, minutes, hours, days, months, und years. Der Standardwert ist Millisekunden.

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(<Datumswert>)

Gibt das Jahr des angegebenen Datums zurück.

  • value: Ein Datumswert, aus dem das Jahr abgerufen werden soll.

Beispiel 1: fieldname ist ein Feld vom Typ Date mit dem Wert 09 Oct 2017 04:30:43 pm.

Year($feature["fieldname"])

Beispiel 2: fieldname ist ein als ISO 8601-Zeichenfolge formatiertes Zeichenfolgenfeld mit dem Wert 2012-09-27.

Beispiel 1: 2017

Beispiel 2: 2012

Konditionale Operatoren

Konditionale Anweisungen können für die folgenden Operatoren verwendet werden.

OperatorErläuterungBeispielErgebnisse

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 für die Berechnung von Feldwerten auch erweiterte logische Operatoren verwendet werden.

Weitere Informationen zu den in Arcade verfügbaren logischen Funktionen

FunktionErläuterungBeispielErgebnis

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:

  • Ein numerisches Feld. Verwenden Sie eckige Klammern, wenn der Feldname ein Leerzeichen enthält.
  • Eine Zahl.
  • Eine Funktion.

iif($feature["field1"] > $feature["field2"], $feature["field1"], 0)

iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["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.

  • expression: Ein Ausdruck.
  • result: Kann eine Zahl oder ein Feld sein.
  • default: Ein optionaler Wert, wenn keiner der Ausdrücke übereinstimmt.

when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["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> )

Die Funktion decode 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.

  • conditional val: Kann ein Feld oder ein Ausdruck sein.
  • case: Ein Wert, der mit conditional val verglichen werden soll.
  • result: Das Ergebnis, wenn der entsprechende Fall mit conditional val übereinstimmt.
  • defaultValue: Ein optionaler Wert, wenn kein anderer Wert true ist.

decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0)

Überprüft den conditional val 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.