Des expressions sont utilisées dans l’outil Append Data (Ajouter des données) pour le calcul des champs de la couche en entrée à l’aide des valeurs de champ de la couche d’ajout. Lorsque vous n’ajoutez pas de champs à partir de la couche d’ajout, utilisez des expressions pour déterminer comment chaque entité est renseignée. Une expression Append Data (Ajouter des données) doit générer des valeurs du même type que celles du champ. Les sections suivantes proposent des exemples d’expressions.
L’outil Append Data (Ajouter des données) a été introduit dans la version 10.6.1 et peut utiliser des expression Arcade pour ajouter des valeurs de champ. Avec Arcade, les noms de champ sont présentés sous la forme $feature["field name"] ou $feature.fieldname. La première option, $feature["field name"], est requise lorsqu’un nom de champ contient un espace. Tous les exemples proposés ci-après utilisent cette option.
Pour en savoir plus sur les expressions Arcade
Les outils suivants utilisent des expressions Arcade dans GeoAnalytics Server :
- Reconstruct Tracks (Reconstruire les pistes) pour mettre des expressions en zone tampon
- Create Buffers (Créer des zones tampon) pour mettre des expressions en zone tampon
- Join Features (Joindre des entités) pour joindre des expressions
- Detect Incidents (Détecter les incidents) pour détecter des incidents avec des expressions de début et de fin
- Calculate Field (Calculer un champ) pour calculer des valeurs de champ
Exemples d’opérations et de fonctions mathématiques
Les expressions peuvent traiter mathématiquement les chiffres. Le tableau ci-dessous présente des exemples d’opérations disponibles.
Pour en savoir plus sur les opérations mathématiques et les fonctions dans Arcade
Opérateur | Explication | Exemple |
---|---|---|
a + b | Renvoie la somme de a plus b. | fieldname contient la valeur 1.5 $feature["fieldname"] + 2.5 4.0 |
a - b | Renvoie la différence de a moins b. | fieldname contient la valeur 3.3 $feature["fieldname"]- 2.2 1,1 |
a * b | Renvoie le produit de a multiplié par b. | fieldname contient la valeur 2.0 $feature["fieldname"] * 2.2 4.4 |
a / b | Renvoie le quotient de a divisé par b. | fieldname contient la valeur 4.0 $feature["fieldname"] / 1.25 3.2 |
abs( a ) | Renvoie la valeur absolue (positive) de a. | fieldname contient la valeur -1.5 abs($feature["fieldname"]) 1.5 |
log ( a ) | Renvoie le logarithme naturel (base E) de a. | fieldname contient la valeur 1 log($feature["fieldname"]) 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["fieldname"]) 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["fieldname"]) 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["fieldname"]) 0 |
sqrt( a ) | Renvoie la racine carrée de a. | fieldname contient la valeur 9 sqrt($feature["fieldname"]) 3 |
min( a, b ) | Renvoie la valeur a ou b la plus faible. | fieldname contient les valeurs 1.5 et -3 min($feature["fieldname"], -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["fieldname1"], $feature["fieldname2"]) 1.5 |
constrain(<value>,<low>,<high>) | Renvoie la valeur en entrée si elle est comprise dans les limites de contrainte. Si la valeur est inférieure à la valeur basse, elle renvoie la valeur basse. Si la valeur est supérieure à la valeur élevée, elle renvoie la valeur élevée. | Exemple 1 : constrain( $feature["distance"], 0, 10) Renvoie 0 si distance est inférieure à 0, 10 si distance est supérieure à 10 et distance dans les autres cas. Exemple 2 : constrain($feature['Store dist'], 6, distance) Renvoie 6 si Store dist est inférieure à 6, distance si Store dist est supérieure à distance et Store dist dans les autres cas. |
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.
Pour en savoir plus sur les fonctions de texte 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 formidable ! |
find(<searchText>, <text>, <startPos>) | Trouve une chaîne dans 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["fieldname2"], $feature["fieldname1"]) | 2 |
lower(<value>) | Passe un segment en minuscules.
| fieldname contient la valeur GEOANALYTICS lower($feature["fieldname"]) | GeoAnalytics |
Exemple de texte utilisant find et lower.
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. Dans Arcade, les valeurs relatives aux mois, aux jours et aux heures sont comprises respectivement entre 0 (Janvier) et 11 (Décembre), entre le 1er et le 31, et entre 0 (12:00 am) et 23 (11:00 pm) heures, 0 et 59 minutes, 0 et 59 secondes et 0 et 999 millisecondes. Les dates Arcade renvoient des valeurs de temps dans l’emplacement de votre GeoAnalytics Server.
Pour en savoir plus sur les fonctions de date dans Arcade
Opérateur | Explication | Exemple | Résultat |
---|---|---|---|
date( <value>, <month>, <day>, <hour>, <minute>) | Décrit une valeur ou un ensemble de valeurs dans une chaîne de date.
| fieldname contient la valeur 1476987783555 Exemple 1 : Date($features["fieldname"]) Exemple 2 : Date(2017,0,14,0) Exemple 3 : Date() | Exemple 1 : 20 oct 2016 11:23:03 am Exemple 2 : 14 jan 2017 00:00:00 am 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()) Exemple 2 : DateDiff(Date(2017,1,14,0), Date(), "Years") | Le résultat variera en fonction du moment où vous exécutez 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["fieldname"]) 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 |
Exemples de fonctions logiques
Outre les expressions mathématiques simples, vous pouvez utiliser d'autres fonctions avancées pour appliquer des expressions de zone tampon.
Fonction | Explication | Exemple | Résultat |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | Renvoie une valeur si une condition est true et renvoie 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["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"]) | Si field1 + 10 est supérieur à 1, renvoie 1. Sinon, vérifie si field2 + 10 est supérieur à 2. Renvoie 2 si c'est le cas. Si ce n'est pas le cas, renvoie field3. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | É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["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0) | Compare l'égalité entre la valeur conditionnelle 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. |
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 |
Vous avez un commentaire à formuler concernant cette rubrique ?