Existen varias herramientas en la caja de herramientas GeoAnalytics Tools que le permiten aplicar una expresión:
- Expresiones de zona de influencia en Crear zonas de influencia
- Expresiones de zona de influencia en Reconstruir recorridos
- Condiciones de unión en Unir entidades
- Las condiciones de incidente en Detectar incidentes
Más información sobre las expresiones en Detectar incidentes
- Calcular valores de campo en Calcular campo
Las GeoAnalytics Tools que utilizan expresiones tienen distintos objetivos, así como limitaciones sobre las expresiones que se pueden aplicar. En 10.6 o versiones posteriores, todas las expresiones utilizadas en GeoAnalytics Server admiten Arcade.
Más información sobre las Funciones de Arcade
Expresiones en Incorporar datos
En la herramienta Incorporar datos se utilizan expresiones para calcular los valores del campo de la capa de entrada especificado. Cuando no vaya a incorporar valores de campo de la capa de incorporación, utilice expresiones para determinar cómo se rellenará cada entidad. Una expresión Incorporar datos debería generar valores del mismo tipo que el campo. En las secciones de abajo se incluyen ejemplos de expresiones.
Ejemplos de operadores matemáticos y funciones
Las expresiones de Incorporar datos 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 disponibles en Arcade
Operador | Explicación | Ejemplo | Resultado |
---|---|---|---|
a + b | a más b. | fieldname contiene el valor 1,5. $feature["fieldname"] + 2.5 | 4.0 |
a - b | a menos b. | fieldname contiene el valor 3,3. $feature["fieldname"]- 2.2 | 1.1 |
a * b | a por b. | fieldname contiene el valor 2,0. $feature["fieldname"] * 2.2 | 4.4 |
a/b | a dividido por b. | fieldname contiene el valor 4,0. $feature["fieldname"] / 1.25 | 3.2 |
abs( a ) | Devuelve el valor absoluto (positivo) de a. | fieldname contiene el valor -1,5. abs($feature["fieldname"]) | 1.5 |
log( a ) | Devuelve el logaritmo natural (base e) de a. | fieldname contiene el valor 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 el valor 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 el valor 0. cos($feature["fieldname"]) | 1 |
tan( a ) | Devuelve la tangente de a. Se presupone que la entrada es un ángulo en radianes. | fieldname contiene el valor 0. tan($feature["fieldname"]) | 0 |
sqrt( a ) | Devuelve la raíz cuadrada de a. | fieldname contiene el valor 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 el valor 1,5 y el valor -3. min($feature["fieldname"], -3) | -3 |
max( a, b ) | Devuelve el número que tenga el valor más alto entre a y b. | fieldname1 contiene el valor 1,5, y fieldname2 contiene el valor -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 de entrada es menor que el valor bajo, devuelve el valor bajo. Si el valor de entrada 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. |
Se muestra un ejemplo de multiplicación para calcular un valor de campo.
$feature["Distance"] * 2
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 disponibles en Arcade
Operador | Explicación | Ejemplo | Resultado |
---|---|---|---|
concatenate( <values>, <separator>) | Concatena valores juntos y devuelve una cadena de caracteres.
| fieldname contiene un valor de GeoAnalytics. Concatenate ([$features["fieldname"], "is", "great!"], ' ') | ¡El geoanálisis es fantástico! |
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 |
Se muestra un ejemplo de texto que utiliza 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.
Más información sobre las funciones de fecha disponibles en Arcade
En Arcade, los valores de mes oscilan entre 0 (enero) y 11 (diciembre), los días entre 1 y 31, las horas entre 0 (12:00 a.m.) y 23 (11:00 p.m.), minutos y segundos entre 0 y 59 y las 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.
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 Date con el valor 09 Oct 2017 04:30:43 pm. Year($feature["fieldname"]) Ejemplo 2: fieldname es un campo de cadena cuyo formato es una cadena de caracteres ISO 8601 con el valor 2012-09-27. | Ejemplo 1: 2017 Ejemplo 2: 2012 |
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 |
Ejemplos de operadores lógicos
Además de los operadores condicionales, se pueden utilizar operadores lógicos más avanzados para calcular valores de campo.
Más información sobre funciones lógicas disponibles en Arcade
Función | Explicación | Ejemplo | Resultado |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | Devuelve un valor si una condición es true, y otro valor si la 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 sucesivamente hasta que una se evalúa como 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, comprueba si field2 + 10 es mayor que 2. Si lo es, devuelve 2. Si no, devuelve field3. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | La función decode evalúa una expresión y compara su valor con los parámetros subsiguientes. 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 conditional val field1 + 3 y case1 field1. Si es true, devuelve 1. Si es false, compara la igualdad entre field1 + 3 y field2. Si es true, devuelve 2; de lo contrario, devuelve 0. |