Las expresiones se utilizan en la herramienta Incorporar datos para calcular los campos de la capa de entrada que utilizan valores de campo de capas de incorporación. Cuando no esté incorporando campos de la capa de incorporación, utilice expresiones para determinar cómo se llenará cada entidad. Una expresión Incorporar datos debería generar valores del mismo tipo que el campo. En las siguientes secciones se incluyen ejemplos de expresiones.
La herramienta Incorporar datos se presentó en la versión 10.6.1 y puede utilizar expresiones de Arcade para incorporar valores de campo. Utilizando Arcade, los nombres de campo se formatean como $feature["field name"] o $feature.fieldname. La primera opción, $feature["field name"], se requiere cuando un nombre de campo contiene un espacio. Todos los ejemplos siguientes utilizan esta opción.
Más información sobre expresiones de Arcade
Las siguientes herramientas utilizan expresiones de Arcade en GeoAnalytics Server:
- Reconstruir recorridos para crear zonas de influencia de expresiones
- Crear zonas de influencia para crear zonas de influencia de expresiones
- Entidades de unión para unir expresiones
- Detectar incidentes para detectar incidentes con expresiones de inicio y final
- Calcular campopara calcular valores de campo
Ejemplos de operación y función matemáticas
Las expresiones pueden procesar números matemáticamente. La siguiente tabla recoge una muestra de las operaciones disponibles.
Más información sobre operaciones y funciones matemáticas de Arcade
Operador | Explicación | Ejemplo | Resultado |
---|---|---|---|
a + b | Devuelve la suma de a más b. | fieldname contiene un valor de 1,5 $feature["fieldname"] + 2.5 | 4.0 |
a - b | Devuelve la diferencia de a menos b. | fieldname contiene un valor de 3,3 $feature["fieldname"]- 2.2 | 1.1 |
a * b | Devuelve el producto de a por b. | fieldname contiene un valor de 2,0 $feature["fieldname"] * 2.2 | 4.4 |
a/b | Devuelve el cociente de a dividido entre b. | fieldname contiene un valor de 4,0 $feature["fieldname"] / 1.25 | 3.2 |
abs( a ) | Devuelve el valor absoluto (positivo) de a. | fieldname contiene un valor de -1,5 abs($feature["fieldname"]) | 1.5 |
log ( a ) | Devuelve el logaritmo natural (base e) de a. | fieldname contiene un valor de 1 log($feature["fieldname"]) | 0 |
sin ( a ) | Devuelve el seno trigonométrico de a. Se presupone que la entrada es un ángulo en radianes. | fieldname contiene un valor de 1,5707 sin($feature["fieldname"]) | 1 |
cos( a ) | Devuelve el coseno trigonométrico de a. Se presupone que la entrada es un ángulo en radianes. | fieldname contiene un valor de 0 cos($feature["fieldname"]) | 1 |
tan( a ) | Devuelve la tangente de a. Se presupone que la entrada es un ángulo en radianes. | fieldname contiene un valor de 0 tan($feature["fieldname"]) | 0 |
sqrt( a ) | Devuelve la raíz cuadrada de a. | fieldname contiene un valor de 9 sqrt($feature["fieldname"]) | 3 |
min( a, b ) | Devuelve el número que tenga el valor más bajo de a y b. | fieldname contiene un valor de 1,5 y un valor de -3 min($feature["fieldname"], -3) | -3 |
max( a, b ) | Devuelve el número que tenga el valor más alto de a o b. | fieldname1 contiene un valor de 1,5 y fieldname2 contiene un valor de -3 max($feature["fieldname1"], $feature["fieldname2"]) | 1.5 |
constrain(<value>,<low>,<high>) | Devuelve el valor de entrada si está contenido en los límites de la restricción. Si el valor es menor que el valor bajo, devuelve el valor bajo. Si el valor es mayor que el valor alto, devuelve el valor alto. | constrain($feature["distance"], 0, 10) constrain($feature['Store dist'], 6, distance) | Devuelve 0 si distance es menor que 0, 10 si distance es mayor que 10 y distance en los demás casos. Devuelve 6 si Store dist es menor que 6, distance si Store dist es mayor que distance y Store dist en los demás casos. |
Ejemplos de la función Texto
Las expresiones de Incorporar datos pueden procesar texto. La siguiente tabla recoge una muestra de las operaciones disponibles.
Más información sobre las funciones de texto de Arcade
Operador | Explicación | Ejemplo | Resultado |
---|---|---|---|
concatenate( <values>, <separator>) | Concatena valores juntos y devuelve un cadena de caracteres.
| fieldname contiene un valor de GeoAnalytics Concatenate ([$features["fieldname"], "is", "great!"], ' ') | ¡GeoAnalytics es genial! |
find(<searchText>, <text>, <startPos>) | Busca una cadena de caracteres dentro de otra cadena de caracteres. Los comodines no se admiten.
| fieldname1 contiene un valor de 14NorthStreet y fieldname2 contiene un valor de North find($feature["fieldname2"], $feature["fieldname1"]) | 2 |
lower(<value>) | Forma una cadena de caracteres en minúscula.
| fieldname contiene un valor de GEOANALYTICS lower($feature["fieldname"]) | geoanálisis |
Ejemplo de texto utilizando find y lower.
find(("north"), lower("146NorthStreet"))
Ejemplos de la función Fecha
Las expresiones de Incorporar datos pueden procesar fechas. La siguiente tabla recoge una muestra de las operaciones disponibles. En Arcade, los valores de mes oscilan entre 0 (enero) y 11 (diciembre), los valores de días entre 1 y 31, los valores de horas entre 0 (12:00 a.m.) y 23 (11:00 p.m.), los valores de minutos y segundos entre 0 y 59 y los valores de milésimas de segundo entre 0 y 999. Las fechas de Arcade devuelven los valores de tiempo en la ubicación de su GeoAnalytics Server.
Más información sobre las funciones de fecha de Arcade
Operador | Explicación | Ejemplo | Resultado |
---|---|---|---|
date( <value>, <month>, <day>, <hour>, <minute>) | Analiza un valor o conjunto de valores en una cadena de caracteres de fecha.
| fieldname contiene un valor de 1476987783555 Ejemplo 1: Date($features["fieldname"]) Ejemplo 2: Date(2017,0,14,0) Ejemplo 3: Date() | Ejemplo 1: 20 oct 2016 11:23:03 am Ejemplo 2: 14 ene 2017 12:00:00 am Ejemplo 3: devuelve la hora actual |
DateDiff(<date1>, <date2>, <units>) | Resta dos fechas y devuelve la diferencia en las unidades especificadas.
| Ejemplo 1: DateDiff(Date(2017,1,14,0), Date()) Ejemplo 2: DateDiff(Date(2017,1,14,0), Date(), "Years") | Los resultados pueden variar dependiendo de cuándo ejecute este comando. Ejemplo 1: -20532129137 Ejemplo 2: -0,6546783768647119 |
Year(<dateValue>) | Devuelve el año de la fecha dada.
| Ejemplo 1: fieldname es un campo de tipo Fecha con un valor de 09 Oct 2017 04:30:43 pm Year($feature["fieldname"]) Ejemplo 2: fieldname es un campo de cadena formateado como una cadena de caracteres ISO 8601 con un valor de 2012-09-27 | Ejemplo 1: 2017 Ejemplo 2: 2012 |
Ejemplos de función lógica
Además de las expresiones matemáticas sencillas, se pueden usar funciones más avanzadas para aplicar expresiones de zona de influencia.
Función | Explicación | Ejemplo | Resultado |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | Devuelve un valor si una condición es true, y devuelve otro valor si esa condición es false. <true value> y <false value> pueden ser lo siguiente:
| iif($feature["field1"] > $feature["field2"], $feature["field1"], 0) iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0) | Devuelve field1 si field1 es mayor que field2 y 0 en los demás casos. Devuelve el resultado de la segunda función iif si field1 es mayor que field2 y 0 en los demás casos. |
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>) | Evalúa una serie de expresiones en orden hasta que una es true.
| when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"]) | Si field1 + 10 es mayor que 1, devuelve 1. Si no, compruebe si field2 + 10 es mayor que 2. Si es así, devuelve 2. Si no, devuelve field3. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | Evalúa una expresión y compara su valor con los parámetros siguientes. Si la expresión coincide, devuelve el valor del siguiente parámetro. Si ninguno coincide, existe la opción de que el último parámetro sea un valor de devolución predeterminado.
| decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0) | Compara la igualdad entre el valor condicional field1 + 3 y case1 field1. Si true, devuelve 1. Si false, compara la igualdad entre field1 + 3 y field2. Si true, devuelve 2; de lo contrario, devuelve 0. |
Operadores condicionales
Las declaraciones condicionales pueden usar los siguientes operadores:
Operador | Explicación | Ejemplo | Resultados |
---|---|---|---|
a > b a < b | a es mayor que b a es menor que b | 10 > 2 | False |
a >= b a <= b | a es mayor o igual que b a es menor o igual que b | abs(-10) >= 10 | True |
a != b | a no es igual que b | abs(-3) != -3 | True |
a == b | a es igual que b | abs(-5) == 5 | True |
<condition1> || <condition2> | Se cumplen la condición 1 o la condición 2. | (abs(-5) == 5) || (10 < 2) | True |
<condition1> && <condition2> | Se cumplen la condición 1 y la condición 2. | (abs(-5) == 5) && (10 < 2) | False |