Skip To Content

Utilizzare espressioni Arcade con Aggiungi dati

Nella casella degli strumenti di Strumenti GeoAnalytics sono disponibili vari strumenti che consentono di applicare un'espressione:

I Strumenti GeoAnalytics che utilizzano espressioni hanno scopi diversi, nonché limitazioni sulle espressioni da applicare. Nella versione 10.6 o successive, tutte le espressioni utilizzate in GeoAnalytics Server supportano Arcade.

Ulteriori informazioni sulle funzioni Arcade

Espressioni in Aggiungi dati

Le espressioni vengono utilizzate nello strumento Aggiungi dati per calcolare valori per il campo del layer di input specificato. Se non si stanno aggiungendo valori di campo dal layer di aggiunta, usare delle espressioni per stabilire come popolare ciascuna feature. Un'espressione Aggiungi dati deve risultare in valori dello stesso tipo del campo. Nelle sezioni riportate di seguito sono inclusi esempi di espressioni.

Esempi di operatori matematici e funzioni

Le espressioni Aggiungi dati sono in grado di elaborare numeri matematicamente. La seguente tabella mostra un esempio delle operazioni disponibili.

Ulteriori informazioni sulle operazioni matematiche e le funzioni disponibili in Arcade

OperatoreSpiegazioneQuesta funzione è stata aggiunta a partire da 10.1.Risultato

a + b

a più b.

fieldname contiene il valore 1,5

$feature["fieldname"] + 2.5

4.0

a - b

a meno b.

fieldname contiene il valore 3,3

$feature["fieldname"]- 2.2

1.1

a * b

a per b.

fieldname contiene il valore 2,0

$feature["fieldname"] * 2.2

4.4

a / b

a diviso b.

fieldname contiene il valore 4,0

$feature["fieldname"] / 1.25

3,2

abs( a )

Restituisce il valore assoluto (positivo) di a.

fieldname contiene il valore -1,5

abs($feature["fieldname"])

1,5

log( a )

Restituisce il logaritmo naturale (base E) di a.

fieldname contiene il valore 1

log($feature["fieldname"])

0

sin( a )

Restituisce il seno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti.

fieldname contiene il valore 1,5707

sin($feature["fieldname"])

1

cos( a )

Restituisce il coseno trigonometrico di a. Si presuppone che l'input sia un angolo espresso in radianti.

fieldname contiene il valore 0

cos($feature["fieldname"])

1

tan( a )

Restituisce la tangente di a. Si presuppone che l'input sia un angolo espresso in radianti.

fieldname contiene il valore 0

tan($feature["fieldname"])

0

rq( a )

Restituisce la radice quadrata di a.

fieldname contiene il valore 9

rq($feature["fieldname"])

3

min( a, b )

Restituisce il valore più basso compreso tra a e b.

fieldname contiene il valore 1,5 e il valore -3

min($feature["fieldname"], -3)

-3

max( a, b )

Restituisce il valore più alto tra a e b.

fieldname1 contiene il valore 1,5 e fieldname2 contiene il valore -3

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

1,5

constrain(<value>,<low>,<high>)

Restituisce il valore di input se rientra nei limiti vincolanti. Se il valore di input è inferiore al valore basso, restituisce il valore basso. Se il valore di input è superiore al valore alto, restituisce il valore alto.

limite($feature["distanza"], 0, 10)

limite($feature['Store dist'], 6, distanza)

Restituisce 0 se distance è minore di 0, altrimenti 10 se distance è maggiore di 10 e di distance.

Restituisce 6 se Store dist è minore di 6, altrimenti distance se Store dist è maggiore di distance e di Store dist.

Si mostra un esempio di moltiplicazione per il calcolo di un valore di campo.

$feature["Distance"] * 2

Esempi della funzione di testo

Le espressioni Aggiungi dati sono in grado di elaborare testo. La seguente tabella mostra un esempio delle operazioni disponibili.

Ulteriori informazioni sulle funzioni di testo disponibili in Arcade

OperatoreSpiegazioneQuesta funzione è stata aggiunta a partire da 10.1.Risultato

concatenare( <valori>, <separatore>)

Concatena i valori e restituisce una stringa.

  • values: un array di valori stringa da concatenare.
  • separator (opzionale): un separatore da utilizzare per la concatenazione se il parametro values è un array, oppure una stringa da concatenare se viene specificato un valore singolo per il primo parametro. Se non specificato, sarà vuoto.

fieldname contiene il valore di GeoAnalytics

Concatenare ([$features["fieldname"], "è", "fantastico!"], ' ')

GeoAnalytics è fantastico!

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

Cerca una stringa in una stringa. I caratteri jolly non sono supportati.

  • searchText: la sottostringa da cercare.
  • text: il testo da cercare.
  • startPos (opzionale): l'indice basato su zero della posizione nella stringa da cui cercare.

fieldname1 contiene il valore di 14NorthStreet e fieldname2 contiene il valore di North

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

2

inferiore(<valore>)

Compilare una stringa in minuscolo.

  • value: la stringa da trasformare in caratteri minuscoli.

fieldname contiene il valore di GEOANALYTICS

inferiore($feature["fieldname"])

geoanalytics

Si mostra un esempio di testo usando find e lower.

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

Esempi della funzione di dati

Le espressioni Aggiungi dati sono in grado di elaborare date. La seguente tabella mostra un esempio delle operazioni disponibili.

Ulteriori informazioni sulle funzioni di dati disponibili in Arcade

In Arcade, i valori del mese variano dallo 0 (Gennaio) all’11 (Dicembre), i giorni vanno dall’1 al 31, le ore dallo 0 (12:00 am) al 23 (11:00 pm), i minuti ed i secondi dallo 0 al 59, ed i millisecondi dallo 0 al 999. I dati Arcade restituiscono i valori temporali nella posizione del proprio GeoAnalytics Server.

OperatoreSpiegazioneQuesta funzione è stata aggiunta a partire da 10.1.Risultato

data( <valore>, <mese>, <giorno>, <ora>, <minuto>)

Analizza il valore o un insieme di valori in una stringa di data.

  • value(opzionale): o il numero di millisecondi a partire dell'1 gennaio, 1970 UTC o il numero che rappresenta l'anno. Se viene specificato l'anno, è necessario specificare anche il giorno e il mese nei parametri successivi. Questo valore potrebbe anche essere una stringa di data o una stringa ISO 8601 da convertire in una data.
  • month (opzionale): il mese (0-11), in cui lo 0 rappresenta gennaio e l'11 rappresenta dicembre.
  • day (opzionale): il giorno del mese (1-31).
  • hour (opzionale): l'ora del giorno (0-23).
  • minute (opzionale): il minuto dell'ora (0-59).
  • second (opzionale): il secondo del minuto (0-59).
  • millisecond (opzionale): il millisecondo del secondo (0-999).

fieldname contiene il valore di 1476987783555

Esempio 1: Data($features["fieldname"])

Esempio 2: Data(2017,0,14,0)

Esempio 3: Data()

Esempio 1: 20 Ott 2016 11:23:03 am

Esempio 2: 14 Gen 2017 12:00:00 am

Esempio 3: Restituisce il periodo temporale attuale

DiffData(<data1>, <data2>, <unità>)

Sottrae due date e restituisce la differenza nelle unità specificate.

  • date1: il valore data da cui sottrarre una seconda data.
  • date2: il valore data da sottrarre dalla prima data specificata.
  • startpos (opzionale): le unità nelle quali restituire la differenza di due date specifiche. I tipi di unità supportate includono milliseconds, seconds, minutes, hours, days, months e years. Il valore predefinito è millisecondi.

Esempio 1: DiffData(Data(2017,1,14,0), Data())

Esempio 2: DiffData(Data(2017,1,14,0), Data(), "Anni")

Il risultato cambierà a seconda del momento di avvio di questo comando.

Esempio 1: -20532129137

Esempio 2: -0.6546783768647119

Anno(<Valoredata>)

Restituisce l'anno della data specificata.

  • value: un valore data da cui ottenere l'anno.

Esempio 1: fieldname è un campo di un tipo Date con un valore di 09 Oct 2017 04:30:43 pm

Anno($feature["fieldname"])

Esempio 2: fieldname è un campo stringa con il formato di una stringa ISO 8601 con un valore di 2012-09-27

Esempio 1: 2017

Esempio 2: 2012

Operatori condizionali

Le istruzioni condizionali possono utilizzare i seguenti operatori.

OperatoreSpiegazioneQuesta funzione è stata aggiunta a partire da 10.1.Risultati

a > b

a < b

a è maggiore di b

a è minore di b

10 > 2

False

a >= b

a <= b

a è maggiore o uguale a b

a è minore o uguale a b

abs(-10) >= 10

True

a != b

a non è uguale a b

abs(-3) != -3

True

a == b

a è uguale a b

abs(-5) == 5

True

<condition1> || <condition2>

Condition 1 o condition 2 viene soddisfatta.

(abs(-5) == 5) || (10 < 2)

True

<condition1> && <condition2>

Condition 1 e condition 2 vengono soddisfatte.

(abs(-5) == 5) && (10 < 2)

False

Esempi di operatore logico

Oltre ad operatori condizionali, è possibile utilizzare operatori logici più avanzati per calcolare valori di campo.

Ulteriori informazioni sulle funzioni logihe disponibili in Arcade

FunzioneSpiegazioneQuesta funzione è stata aggiunta a partire da 10.1.Risultato

iif(<condition>,<true value>,<false value>)

Restituisce un valore se una condizione è true e un altro valore se tale condizione è false.

<true value> e <false value> possono essere i seguenti:

  • Un campo numerico. Utilizzare le parentesi quadre se c'è uno spazio nel nome del campo.
  • Un numero.
  • Una funzione.

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

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

Restituisce field1 se field1 è maggiore di field2, altrimenti 0.

Restituisce il risultato della seconda funzione iif se field1 è maggiore di field2, altrimenti 0.

when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>)

Valuta una serie di espressioni, una alla volta, fino a quando una non risulta essere true.

  • expression: un'espressione.
  • result: può essere un numero o un campo.
  • default: un valore facoltativo se nessuna delle espressioni corrisponde.

quando($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"])

Se field1 + 10 è maggiore di 1, restituisce 1. In caso contrario, verifica se field2 + 10 è maggiore di 2. Se lo è, restituisce 2. In caso contrario, restituisce field3.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

La funzione decode valuta un'espressione e ne confronta il valore con i parametri successivi. Se l'espressione corrisponde, restituisce il successivo valore di parametro. In assenza di corrispondenze, è disponibile l'opzione per cui l'ultimo parametro è un valore restituito predefinito.

  • conditional val: può essere un campo o un'espressione.
  • case: un valore da confrontare con conditional val.
  • result: il risultato se il caso corrispondente corrisponde a conditional val.
  • defaultValue: un valore facoltativo se nessun altro valore è true.

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

Confronta l'uguaglianza tra il conditional val field1 + 3 e il caso 1 field1. Se true, restituisce 1. Se false, confronta l'uguaglianza tra field1 + 3 e field2. Se true, restituisce 2; altrimenti, restituisce 0.