La boîte à outils GeoAnalytics Tools contient plusieurs outils permettant d’appliquer une expression:
- Expressions de zone tampon dans Create Buffers (Créer des zones tampon)
- Expressions de zone tampon dans Reconstruct Tracks (Reconstruire les pistes)
- Conditions de jointures dans Join Features (Entités jointes)
En savoir plus sur les expressions dans Join Features (Entités jointes)
- Conditions d’incident dans Detect Incidents (Détecter les incidents)
En savoir plus sur les expressions dans Detect Incidents (Détecter les incidents)
- Calcul des valeurs de champ dans Calculate Field (Calculer un champ)
En savoir plus sur les expressions dans Calculate Field (Calculer un champ)
Les GeoAnalytics Tools qui utilisent des expressions ont des fonctions diverses, mais sont également limités quant aux expressions qu’ils peuvent appliquer. À partir de la version 10.6, toutes les expressions utilisées dans GeoAnalytics Server prennent en charge Arcade.
En savoir plus sur les fonctions Arcade
Expressions dans Append Data (Ajouter des données)
Les expressions sont utilisées dans l’outil Append Data (Ajouter des données) pour calculer les valeurs du champ de couche en entrée. Lorsque vous n’ajoutez pas de valeurs de champ de la couche d’ajout, utilisez des expressions pour déterminer la façon dont chaque entité doit être renseignée. L’expression Append Data (Ajouter des données) doit avoir pour résultat des valeurs du même type que le champ. Les sections suivantes proposent des exemples d’expressions.
Exemples d’opérateur mathématique et de fonction
Les expressions Append Data (Ajouter des données) peuvent traiter les nombres mathématiquement. Le tableau ci-dessous présente des exemples d’opérations disponibles.
En savoir plus sur les opérations mathématiques et les fonctions disponibles dans Arcade
Opérateur | Explication | Exemple | Résultat |
---|---|---|---|
a + b | a plus b. | fieldname contient la valeur 1,5. $feature["nom du champ"] + 2.5 | 4.0 |
a - b | a moins b. | fieldname contient la valeur 3,3. $feature["nom du champ"] - 2.2 | 1.1 |
a * b | a multiplié par b. | fieldname contient la valeur 2,0. $feature["nom du champ"] * 2.2 | 4.4 |
a / b | a divisé par b. | fieldname contient la valeur 4,0. $feature["nom du champ"] / 1.25 | 3.2 |
abs( a ) | Renvoie la valeur absolue (positive) de a. | fieldname contient la valeur -1,5. abs($feature["nom du champ"]) | 1,5 |
log ( a ) | Renvoie le logarithme naturel (base E) de a. | fieldname contient la valeur 1. journal($feature["nom du champ"]) | 0 |
sin ( a ) | Renvoie le sinus trigonométrique de a. On suppose que l'entrée est un angle en radians. | fieldname contient la valeur 1,5707. sin($feature["nom du champ"]) | 1 |
cos( a ) | Renvoie le cosinus trigonométrique de a. On suppose que l'entrée est un angle en radians. | fieldname contient la valeur 0. cos($feature["nom du champ"]) | 1 |
tan( a ) | Renvoie la tangente de a. On suppose que l'entrée est un angle en radians. | fieldname contient la valeur 0. tan($feature["nom du champ"]) | 0 |
sqrt( a ) | Renvoie la racine carrée de a. | fieldname contient la valeur 9. sqrt($feature["nom du champ"]) | 3 |
min( a, b ) | Renvoie la valeur la plus basse entre a et b. | fieldname contient les valeurs 1,5 et -3. min($feature["nom du champ"], -3) | -3 |
max( a, b ) | Renvoie la valeur la plus élevée entre a et b. | fieldname1 contient la valeur 1.5 et fieldname2 contient la valeur -3. max($feature["nom du champ1"], $feature["nom du champ2"]) | 1,5 |
constrain(<value>,<low>,<high>) | Renvoie la valeur en entrée si elle est comprise dans les limites de contrainte. Si la valeur en entrée est inférieure à la valeur basse, elle renvoie la valeur basse. Si la valeur en entrée est supérieure à la valeur haute, elle renvoie la valeur haute. | constrain($feature["distance"], 0, 10) constrain($feature[’Store dist’], 6, distance) | Renvoie 0 si distance est inférieure à 0,10 si distance est supérieure à 10 et distance dans les autres cas. Renvoie 6 si Store dist est inférieure à 6, distance si Store dist est supérieure à distance et Store dist dans les autres cas. |
Un exemple de multiplication pour le calcul d’une valeur de champ est donné.
$feature["Distance"] * 2
Exemples de fonctions de texte
Les expressions Append Data (Ajouter des données) peuvent traiter du texte. Le tableau ci-dessous présente des exemples d’opérations disponibles.
En savoir plus sur les fonctions de texte disponibles dans Arcade
Opérateur | Explication | Exemple | Résultat |
---|---|---|---|
concatenate( <valeurs>, <séparateur>) | Concatène les valeurs et renvoie une chaîne.
| fieldname contient la valeur GeoAnalytics. Concatenate ([$features["fieldname"], "is", "great!"], ' ') | GeoAnalytics est super ! |
find(<searchText>, <text>, <startPos>) | Trouve une chaîne à l’intérieur d’une chaîne. Les caractères génériques ne sont pas pris en charge.
| fieldname1 contient la valeur 14NorthStreet et fieldname2 contient la valeur North. find($feature["nom du champ2"], $feature["nom du champ1"]) | 2 |
lower(<value>) | Convertit une chaîne en minuscule.
| fieldname contient la valeur GEOANALYTICS. lower($feature["nom du champ"]) | GeoAnalytics |
Un exemple de texte utilisant find et lower est affiché.
find(("north"), lower("146NorthStreet"))
Exemples de fonctions de date
Les expressions Append Data (Ajouter des données) peuvent traiter des dates. Le tableau ci-dessous présente des exemples d’opérations disponibles.
En savoir plus sur les fonctions de date disponibles dans Arcade
Dans Arcade, les valeurs de mois vont de 0 (janvier) à 11 (décembre), les jours vont de 1 à 31, les heures vont de 0 (minuit) à 23 (23 h), les minutes et secondes vont de 0 à 59 et les millisecondes, de 0 à 999. Les dates Arcade renvoient des valeurs de temps dans l’emplacement de votre GeoAnalytics Server.
Opérateur | Explication | Exemple | Résultat |
---|---|---|---|
date( <value>, <month>, <day>, <hour>, <minute>) | Analyse une valeur ou un ensemble de valeurs dans une chaîne de date.
| fieldname contient la valeur 1476987783555. Exemple 1 : Date($features["nom de champ"]) Exemple 2 : Date(2017,0,14,0) Exemple 3 : Date() | Exemple 1 : 20 Oct 2016 11:23:03 Exemple 2 : 14 Jan 2017 00:00:00 Exemple 3 : renvoie l'heure actuelle |
DateDiff(<date1>, <date2>, <unités>) | Opère une soustraction entre deux dates et renvoie la différence dans les unités spécifiées.
| Exemple 1 : DateDiff(Date(2017,1,14,0), Date()) Example 2 : DateDiff(Date(2017,1,14,0), Date(), "Années") | Le résultat dépend du moment où est exécutée cette commande. Exemple 1 : -20532129137 Exemple 2 : -0.6546783768647119 |
Year(<dateValue>) | Renvoie l'année de la date donnée.
| Exemple 1 : fieldname est un champ de type Date dont la valeur est 09 Oct 2017 04:30:43 pm. Year($feature["nom de champ"]) Exemple 2 : fieldname est un champ de type chaîne au format chaîne ISO 8601 dont la valeur est 2012-09-27. | Exemple 1 : 2017 Exemple 2 : 2012 |
Opérateurs conditionnels
Les instructions conditionnelles peuvent utiliser les opérateurs suivants.
Opérateur | Explication | Exemple | Résultats |
---|---|---|---|
a > b a < b | a est supérieur à b a est inférieur à b | 10 > 2 | False |
a >= b a <= b | a est supérieur ou égal à b a est inférieur ou égal à b | abs(-10) >= 10 | True |
a != b | a est différent de b | abs(-3) != -3 | True |
a == b | a est égal à b | abs(-5) == 5 | True |
<condition1> || <condition2> | La condition 1 ou la condition 2 est satisfaite. | (abs(-5) == 5) || (10 < 2) | True |
<condition1> && <condition2> | La condition 1 et la condition 2 sont satisfaites. | (abs(-5) == 5) && (10 < 2) | False |
Exemples d’opérateurs logiques
Outre les opérateurs conditionnels, des opérateurs logiques plus avancés peuvent être utilisés pour calculer les valeurs de champ.
En savoir plus sur les fonctions logiques disponibles dans Arcade
Fonction | Explication | Exemple | Résultat |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | Renvoie une valeur si une condition est true et une autre valeur si la condition est false. <true value> et <false value> peuvent être :
| iif($feature["field1"] > $feature["field2"], $feature["field1"], 0) iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0) | Renvoie field1 si field1 est supérieur à field2 et 0 dans les autres cas. Renvoie le résultat de la deuxième fonction iif si field1 est supérieur à field2 et 0 dans les autres cas. |
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>) | Évalue une série d’expressions jusqu’à ce que l’une soit true.
| when(($feature["champ1"] + 10) > 1, 1,($feature["champ2"] + 10) > 2 , 2, $feature["champ3"]) | Si field1 + 10 est supérieur à 1, renvoie 1. Sinon, vérifie si field2 + 10 est supérieur à 2. Si c’est le cas, elle renvoie 2. Si ce n’est pas le cas, renvoie field3. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | La fonction decode évalue une expression et compare sa valeur aux paramètres suivants. Si l’expression correspond, elle renvoie la valeur du paramètre suivant. Si aucune correspondance n’est trouvée, le dernier paramètre peut être une valeur de renvoi par défaut.
| decode($feature["champ1"] + 3 , $feature["champ1"], 1, $feature["champ2"], 2, 0) | Compare l’égalité entre la valeur conditionnelle conditional val field1 + 3 et cas1 field1. Si la condition est true, renvoie 1. Si la condition est false, compare l’égalité entre field1 + 3 et field2. Si la condition est true, renvoie 2 ; sinon, renvoie 0. |
Vous avez un commentaire à formuler concernant cette rubrique ?