식을 적용할 수 있는 GeoAnalytics Tools 도구상자에 여러 도구가 있습니다.
식을 사용하는 GeoAnalytics Tools에 다양한 용도가 있으며 식을 적용할 수 있는 제한 사항도 있습니다. 10.6 이상의 경우 GeoAnalytics Server에서 사용되는 모든 식에 Arcade가 지원됩니다.
데이터 추가의 식
식은 데이터 추가 도구에서 사용되어 지정된 입력 레이어 필드의 값을 계산합니다. 추가 레이어에서 필드 값을 추가하지 않을 때 식을 사용하여 각 피처가 채워지는 방식을 지정합니다. 데이터 추가 식의 결과는 필드와 동일한 유형의 값이어야 합니다. 식의 예시가 아래 섹션에 포함되어 있습니다.
수학 연산자 및 함수 예시
데이터 추가 식은 수학적으로 숫자를 처리할 수 있습니다. 다음 테이블은 사용 가능한 연산 샘플을 보여줍니다.
Arcade에서 사용할 수 있는 수학 연산자 및 함수에 대한 자세한 정보
연산자 | 설명 | 예시 | 결과 |
---|---|---|---|
a + b | a와 b를 더합니다. | fieldname 값으로 1.5를 포함합니다. $feature["fieldname"] + 2.5 | 4.0 |
a - b | a에서 b를 뺍니다. | fieldname 값으로 3.3을 포함합니다. $feature["fieldname"]- 2.2 | 1.1 |
a * b | a와 b를 곱합니다. | fieldname 값으로 2.0을 포함합니다. $feature["fieldname"] * 2.2 | 4.4 |
a / b | a를 b로 나눕니다. | fieldname 값으로 4.0을 포함합니다. $feature["fieldname"] / 1.25 | 3.2 |
abs( a ) | a의 절대 값(양수)을 반환합니다. | fieldname 값으로 -1.5를 포함합니다. abs($feature["fieldname"]) | 1.5 |
log( a ) | A의 자연 로그(밑 E)를 반환합니다. | fieldname 값으로 1을 포함합니다. log($feature["fieldname"]) | 0 |
sin( a ) | a의 사인 값을 반환합니다. 입력은 라디안의 각도로 간주됩니다. | fieldname 값으로 1.5707을 포함합니다. sin($feature["fieldname"]) | 1 |
cos( a ) | a의 코사인 값을 반환합니다. 입력은 라디안의 각도로 간주됩니다. | fieldname 값으로 0을 포함합니다. cos($feature["fieldname"]) | 1 |
tan( a ) | a의 탄젠트를 반환합니다. 입력은 라디안의 각도로 간주됩니다. | fieldname 값으로 0을 포함합니다. tan($feature["fieldname"]) | 0 |
sqrt( a ) | a의 제곱근을 반환합니다. | fieldname 값으로 9를 포함합니다. sqrt($feature["fieldname"]) | 3 |
min( a, b ) | a와 b 중 가장 낮은 숫자 값을 반환합니다. | fieldname 값으로 1.5 및 -3을 포함합니다. min($feature["fieldname"], -3) | -3 |
max( a, b ) | a와 b 중 가장 높은 숫자 값을 반환합니다. | fieldname1 값으로 1.5를 포함하고 fieldname2에 값으로 -3을 포함합니다. max($feature["fieldname1"], $feature["fieldname2"]) | 1.5 |
constrain(<value>,<low>,<high>) | 포함하는 경계 내에 있는 경우 입력 값을 반환합니다. 입력 값이 낮은 값보다 작은 경우 낮은 값을 반환합니다. 입력 값이 높은 값보다 큰 경우 높은 값을 반환합니다. | constrain($feature["distance"], 0, 10) constrain($feature['Store dist'], 6, distance) | distance가 0보다 작은 경우 0을 반환하며 distance가 10보다 작은 경우 10을 반환하고, 그 외에는 distance입니다. Store dist가 6보다 작은 경우 6을 반환하며 distance가 Store dist보다 작은 경우 distance를 반환하고, 그 외에는 Store dist입니다. |
필드 값 계산을 위한 곱셈 예시가 표시됩니다.
$feature["Distance"] * 2
텍스트 함수 예시
데이터 추가 식은 텍스트를 처리할 수 있습니다. 다음 테이블은 사용 가능한 연산 샘플을 보여줍니다.
Arcade에서 사용할 수 있는 텍스트 함수에 대한 자세한 정보
연산자 | 설명 | 예시 | 결과 |
---|---|---|---|
concatenate( <values>, <separator>) | 값을 함께 연결하여 문자열을 반환합니다.
| fieldname 값으로 GeoAnalytics를 포함합니다. Concatenate([$features["fieldname"], "is", "great!"], ' ') | GeoAnalytics is great! |
find(<searchText>, <text>, <startPos>) | 문자열 내에서 문자열을 찾습니다. 와일드 카드를 지원하지 않습니다.
| fieldname1 값으로 14NorthStreet를 포함하고 fieldname2에 값으로 North를 포함합니다. find($feature["fieldname2"], $feature["fieldname1"]) | 2 |
lower(<value>) | 문자열을 소문자로 전환합니다.
| fieldname 값으로 GEOANALYTICS를 포함합니다. lower($feature["fieldname"]) | GeoAnalytics |
find 및 lower을 사용한 텍스트 예시가 표시됩니다.
find(("north"), lower("146NorthStreet"))
날짜 함수 예시
데이터 추가 식은 날짜를 처리할 수 있습니다. 다음 테이블은 사용 가능한 연산 샘플을 보여줍니다.
Arcade에서 사용할 수 있는 날짜 함수에 대한 자세한 정보
Arcade에서 월의 값은 0(1월)~11(12월), 일은 1~31, 시간은 0(오전 12:00)~23(오후 11:00), 분과 초는 0~59, 밀리초는 0~999입니다. Arcade 날짜는 GeoAnalytics Server 위치의 시간 값을 반환합니다.
연산자 | 설명 | 예시 | 결과 |
---|---|---|---|
date( <value>, <month>, <day>, <hour>, <minute>) | 단일 값 또는 일련의 값을 날짜 문자열로 구문 분석합니다.
| fieldname 값으로 1476987783555를 포함합니다. 예시 1: Date($features["fieldname"]) 예시 2: Date(2017,0,14,0) 예시 3: Date() | 예시 1: 2016년 10월 20일 11:23:03am 예시 2: 2017년 1월 14일 12:00:00 am 예시 3: 현재 시간이 반환됨 |
DateDiff(<date1>, <date2>, <units>) | 두 날짜를 뺀 차이를 지정된 단위로 반환합니다.
| 예시 1: DateDiff(Date(2017,1,14,0), Date()) 예시 2: DateDiff(Date(2017,1,14,0), Date(), "Years") | 이 명령을 실행한 날짜에 따라 결과가 달라집니다. 예시 1: -20532129137 예시 2: -0.6546783768647119 |
Year(<dateValue>) | 지정 날짜의 연도를 반환합니다.
| 예시 1: fieldname은 09 Oct 2017 04:30:43 pm 값을 갖는 Date 유형의 필드입니다. Year($feature["fieldname"]) 예시 2: fieldname은 2012-09-27 값을 갖는 ISO 8601 문자열 형식의 문자열 필드입니다. | 예시 1: 2017 예시 2: 2012 |
조건 연산자
조건문은 다음 연산자를 사용할 수 있습니다.
연산자 | 설명 | Example | 결과 |
---|---|---|---|
a > b a < b | a가 b보다 큼 a가 b보다 작음 | 10 > 2 | False |
a >= b a <= b | a가 b보다 크거나 동일함 a가 b보다 작거나 동일함 | abs(-10) >= 10 | True |
a != b | a가 b와 같지 않음 | abs(-3) != -3 | True |
a == b | a가 b와 같음 | abs(-5) == 5 | True |
<조건1> || <조건2> | 조건 1 또는 조건 2가 충족됨 | (abs(-5) == 5) || (10 < 2) | True |
<조건1> && <조건2> | 조건 1 및 조건 2가 충족됨 | (abs(-5) == 5) && (10 < 2) | False |
논리 연산자 예시
조건 연산자 이외에 고급 논리 연산자를 사용하여 필드 값을 계산할 수 있습니다.
Arcade에서 사용할 수 있는 논리 함수에 대해 대한 자세한 정보
함수 | 설명 | 예시 | 결과 |
---|---|---|---|
iif(<condition>,<true value>,<false value>) | 조건이 true로 평가되면 그 값을 반환하고 조건이 false로 평가되면 다른 값을 반환합니다. <true value> 및 <false value>은(는) 다음과 같을 수 있습니다.
| iif($feature["field1"] > $feature["field2"], $feature["field1"], 0) iif($feature["field1"] > $feature["field2"], iif($feature["field2"] = 0, $feature["field3"], $feature["field4"]), 0) | field1이 field1보다 큰 경우 field2를 반환하고 그 외에는 0입니다. iif이(가) field1보다 큰 경우 두 번째 field2 기능의 결과를 반환하고 그 외에는 0입니다. |
when(<expression1> , <result1> , <expression2> , <result2> , ... , <expressionN> , <resultN>, <default>) | true로 평가되는 식이 나올 때까지 일련의 식을 차례로 평가합니다.
| when(($feature["field1"] + 10) > 1, 1,($feature["field2"] + 10) > 2 , 2, $feature["field3"]) | field1 + 10이 1보다 큰 경우 1을 반환합니다. 그렇지 않은 경우 field2 + 10이 2보다 큰지 확인합니다. 그렇다면 2를 반환합니다. 그렇지 않은 경우 field3을 반환합니다. |
decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> ) | decode 함수가 식을 평가하고 값을 이후 매개변수와 비교합니다. 식이 일치하는 경우 다음 매개변수 값을 반환합니다. 아무것도 일치하지 않는 경우 마지막 매개변수가 기본 반환 값이 되는 옵션이 있습니다.
| decode($feature["field1"] + 3 , $feature["field1"], 1, $feature["field2"], 2, 0) | conditional val field1 + 3 및 case1 field1의 동등을 비교합니다. true인 경우 1을 반환합니다. false인 경우 field1 + 3 및 field2의 동등을 비교합니다. true인 경우 2를 반환합니다. 그 외의 경우 0을 반환합니다. |