12.2. 함수 목록

QGIS에서 사용할 수 있는 함수, 연산자 및 변수의 목록을 다음에 범주별로 정리했습니다.

12.2.1. 집계 함수

이 그룹은 레이어 및 필드에 있는 값들을 집계하는 함수를 담고 있습니다.

12.2.1.1. aggregate

다른 레이어의 피처를 이용해서 계산한 집계값을 반환합니다.

문법

aggregate(layer, aggregate, expression, [filter], [concatenator=’’], [order_by])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 레이어명 또는 레이어 ID 가운데 하나를 나타내는 문자열

  • aggregate - 계산할 집계에 대응하는 문자열. 유효한 옵션은 다음과 같습니다:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: 제1사분위수(First Quartile)

    • q3: 제3사분위수(Third Quartile)

    • iqr: 사분위간 범위(Inter Quartile Range)

    • min_length: 최단 문자열 길이

    • max_length: 최장 문자열 길이

    • concatenate: 연결자(concatenator)로 문자열을 결합

    • concatenate_unique: 연결자로 유일 문자열을 결합

    • collect: 집계된 다중 부분 도형을 생성

    • array_agg: 집계된 값의 배열을 생성

  • expression - 집계할 하위 표현식 또는 필드명

  • filter - 집계 용으로 사용되는 객체를 제한하기 위한 부가적인 필터 표현식입니다. 결합한 레이어에 있는 객체에서 필드 및 도형을 가져옵니다. 변수 @parent를 통해 소스 객체에 접근할 수 있습니다.

  • concatenator - ‘연쇄(concatenate)’ 집계를 위한 값을 결합하는 데 사용할 부가적인 문자열

  • order_by - 집계 용으로 사용되는 객체를 정렬하기 위한 부가적인 필터 표현식입니다. 결합한 레이어에 있는 객체에서 필드 및 도형을 가져옵니다. 기본적으로, 지정되지 않은 순서로 피처를 반환할 것입니다.

예제

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → rail_stations 레이어의 passengers 필드에서 나온 모든 값의 합계

  • aggregate('rail_stations','sum', "passengers"/7) → 값들의 합을 구하기 전에 “passengers” 필드를 7로 나누어 “passengers”의 일일 평균을 계산

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → “class” 속성이 3보다 큰 객체에서만 “passengers” 필드의 모든 값에 대한 합계

  • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → rail_stations 레이어에서 모든 객체에 대한 쉼표로 구분된 name 필드의 값 목록

  • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) ) → ‘countries’ 레이어에서 교차하는 country의 country 코드

  • aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:=contains( @atlas_geometry, $geometry ) ) → 현재 지도책 객체 안에 있는 rail_stations 레어어의 passengers 필드에서 나온 모든 값의 합계

  • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid($geometry), filter:="region_name" = attribute(@parent,'name') ) → 현재 객체와 동일한 지역의 rail_stations 레이어의 중심점 도형을 집계

12.2.1.2. array_agg

필드 또는 표현식에서 집계한 값들의 배열을 반환합니다.

문법

array_agg(expression, [group_by], [filter], [order_by])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

  • order_by - 집계하는 데 사용되는 객체를 정렬하는 데 사용하기 위한 부가적인 표현식. 기본적으로, 지정되지 않은 순서로 피처를 반환할 것입니다.

예제

  • array_agg("name",group_by:="state") → ‘state’ 필드로 그룹화된 이름 값 목록

12.2.1.3. collect

표현식에서 나온 집계 도형들로 이루어진 다중 부분 도형을 반환합니다.

문법

collect(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 도형 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • collect( $geometry ) → 집계된 도형들로 이루어진 다중 부분 도형

  • collect( centroid($geometry), group_by:="region", filter:= "use" = 'civilian' ) → 피처의 지역 값을 바탕으로 집계된 ‘civilian’ 피처의 중심점(centroid)

12.2.1.4. concatenate

필드 또는 표현식에서 나오는 집계된 문자열을 모두 구분자로 결합해서 반환합니다.

문법

concatenate(expression, [group_by], [filter], [concatenator], [order_by])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

  • concatenator - 값을 결합하는 데 사용할 부가적인 문자열. 기본적으로 비어 있습니다.

  • order_by - 집계하는 데 사용되는 객체를 정렬하는 데 사용하기 위한 부가적인 표현식. 기본적으로, 지정되지 않은 순서로 피처를 반환할 것입니다.

예제

  • concatenate("town_name",group_by:="state",concatenator:=',') → ‘state’ 필드로 그룹화된 ‘town_names’ 를 쉼표로 구분한 목록

12.2.1.5. concatenate_unique

필드 또는 표현식에서 나오는 유일한 문자열을 모두 구분자로 결합해서 반환합니다.

문법

concatenate_unique(expression, [group_by], [filter], [concatenator], [order_by])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

  • concatenator - 값을 결합하는 데 사용할 부가적인 문자열. 기본적으로 비어 있습니다.

  • order_by - 집계하는 데 사용되는 객체를 정렬하는 데 사용하기 위한 부가적인 표현식. 기본적으로, 지정되지 않은 순서로 피처를 반환할 것입니다.

예제

  • concatenate_unique("town_name",group_by:="state",concatenator:=',') → ‘state’ 필드로 그룹화된 유일한 ‘town_names’ 를 쉼표로 구분한 목록

12.2.1.6. count

일치하는 객체 수를 반환합니다.

문법

count(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • count("stations",group_by:="state") → ‘state’ 필드로 그룹화된 ‘stations’ 개수

12.2.1.7. count_distinct

고유값의 수를 반환합니다.

문법

count_distinct(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • count_distinct("stations",group_by:="state") → ‘state’ 필드로 그룹화된 고유한 ‘stations’ 개수

12.2.1.8. count_missing

누락된 (NULL) 값의 개수를 반환합니다.

문법

count_missing(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • count_missing("stations",group_by:="state") → ‘state’ 필드로 그룹화된 누락 (NULL) ‘stations’ 개수

12.2.1.9. iqr

필드 또는 표현식으로부터 계산한 중간 사분위수 범위(inter quartile range)를 반환합니다.

문법

iqr(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • iqr("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 값의 중간 사분위수 범위

12.2.1.10. majority

필드 또는 표현식에서 집계 다수 값(가장 흔하게 나타나는 값)을 반환합니다.

문법

majority(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • majority("class",group_by:="state") → ‘state’ 필드로 그룹화된 범주에서 가장 흔하게 나타나는 값

12.2.1.11. max_length

필드 또는 표현식에서 가장 긴 문자열의 길이를 반환합니다.

문법

max_length(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • max_length("town_name",group_by:="state") → ‘state’ 필드로 그룹화된 ‘town_name’ 의 최장 길이

12.2.1.12. maximum

필드 또는 표현식에서 나오는 집계 최대값을 반환합니다.

문법

maximum(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • maximum("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 최대값

12.2.1.13. mean

필드 또는 표현식에서 나오는 집계 평균값을 반환합니다.

문법

mean(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • mean("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 평균값

12.2.1.14. median

필드 또는 표현식에서 나오는 집계 중앙값을 반환합니다.

문법

median(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • median("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 중간값

12.2.1.15. min_length

필드 또는 표현식에서 가장 짧은 문자열의 길이를 반환합니다.

문법

min_length(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • min_length("town_name",group_by:="state") → ‘state’ 필드로 그룹화된 ‘town_name’ 의 최단 길이

12.2.1.16. minimum

필드 또는 표현식에서 나오는 집계 최소값을 반환합니다.

문법

minimum(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • minimum("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 최소값

12.2.1.17. minority

필드 또는 표현식에서 집계 소수 값(가장 뜸하게 나타나는 값)을 반환합니다.

문법

minority(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • minority("class",group_by:="state") → ‘state’ 필드로 그룹화된 범주에서 가장 뜸하게 나타나는 값

12.2.1.18. q1

필드 또는 표현식으로부터 계산한 첫 번째 사분위수(quartile)를 반환합니다.

문법

q1(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • q1("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 첫 번째 사분위수 값

12.2.1.19. q3

필드 또는 표현식으로부터 계산한 세 번째 사분위수를 반환합니다.

문법

q3(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • q3("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 의 세 번째 사분위수 값

12.2.1.20. range

필드 또는 표현식에서 나오는 값들의 (최대 ~ 최소) 집계 범위를 반환합니다.

문법

range(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • range("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 값들의 범위

12.2.1.21. relation_aggregate

레이어 관계에서 나오는 파생 객체들 가운데 일치하는 모든 객체를 사용해서 계산한 집계값을 반환합니다.

문법

relation_aggregate(relation, aggregate, expression, [concatenator=’’], [order_by])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • relation - 관계 ID를 표현하는 문자열

  • aggregate - 계산할 집계에 대응하는 문자열. 유효한 옵션은 다음과 같습니다:

    • count

    • count_distinct

    • count_missing

    • min

    • max

    • sum

    • mean

    • median

    • stdev

    • stdevsample

    • range

    • minority

    • majority

    • q1: 제1사분위수(First Quartile)

    • q3: 제3사분위수(Third Quartile)

    • iqr: 사분위간 범위(Inter Quartile Range)

    • min_length: 최단 문자열 길이

    • max_length: 최장 문자열 길이

    • concatenate: 연결자(concatenator)로 문자열을 결합

    • concatenate_unique: 연결자로 유일 문자열을 결합

    • collect: 집계된 다중 부분 도형을 생성

    • array_agg: 집계된 값의 배열을 생성

  • expression - 집계할 하위 표현식 또는 필드명

  • concatenator - ‘연쇄(concatenate)’ 집계를 위한 값을 결합하는 데 사용할 부가적인 문자열

  • order_by - 집계 용으로 사용되는 객체를 정렬하기 위한 부가적인 표현식입니다. 결합한 레이어에 있는 객체에서 필드 및 도형을 가져옵니다. 기본적으로, 지정되지 않은 순서로 피처를 반환할 것입니다.

예제

  • relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → ‘my_relation’ 관계를 사용해서 매칭한 모든 파생 객체의 평균값

  • relation_aggregate('my_relation','sum', "passengers"/7) → ‘my_relation’ 관계를 사용해서 매칭한 모든 파생 객체에 대해 ‘passengers’ 필드의 합을 7로 나눈 값

  • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → ‘my_relation’ 관계를 사용해서 매칭한 모든 파생 객체에 대한 ‘towns’ 필드의 쉼표 구분 목록

  • relation_aggregate('my_relation','array_agg', "id") → ‘my_relation’ 관계를 사용해서 매칭한 모든 파생 객체에서 나온 ID 필드의 목록

더 읽어볼 거리: 일대다 또는 다대다 관계 생성

12.2.1.22. stdev

필드 또는 표현식에서 집계 표준 편차값을 반환합니다.

문법

stdev(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • stdev("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 값의 표준 편차

12.2.1.23. sum

필드 또는 표현식에서 집계 적산값을 반환합니다.

문법

sum(expression, [group_by], [filter])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 집계할 필드의 하위 표현식

  • group_by - 그룹 집계 계산에 사용할 부가적인 표현식

  • filter - 집계하는 데 사용되는 객체를 필터링하는 데 사용할 부가적인 표현식

예제

  • sum("population",group_by:="state") → ‘state’ 필드로 그룹화된 ‘population’ 값의 합계

12.2.2. 배열 함수

이 함수 그룹은 (목록 데이터 구조라고도 하는) 배열을 생성하고 처리하는 함수들을 담고 있습니다. 배열 내부의 값의 순서가 중요합니다. 키-값 쌍이 중요하지 않고 값을 값의 키로 식별하는 ‘맵’ 데이터 구조 와는 다릅니다.

12.2.2.1. array

파라미터로써 전달된 모든 값들을 담고 있는 배열을 반환합니다.

문법

array(value1, value2, …)

인자

  • value - 값

예제

  • array(2,10) → [ 2, 10 ]

  • array(2,10)[0] → 2

12.2.2.2. array_all

배열이 지정한 배열의 모든 값을 담고 있는 경우 참을 반환합니다.

문법

array_all(array_a, array_b)

인자

  • array_a - 배열

  • array_b - 검색할 값들의 배열

예제

  • array_all(array(1,2,3),array(2,3)) → 참

  • array_all(array(1,2,3),array(1,2,4)) → 거짓

12.2.2.3. array_append

지정한 값을 맨 끝에 추가한 배열을 반환합니다.

문법

array_append(array, value)

인자

  • array - 배열

  • value - 추가할 값

예제

  • array_append(array(1,2,3),4) → [ 1, 2, 3, 4 ]

12.2.2.4. array_cat

지정한 배열들을 모두 연결해서 담고 있는 배열을 반환합니다.

문법

array_cat(array1, array2, …)

인자

  • array - 배열

예제

  • array_cat(array(1,2),array(2,3)) → [ 1, 2, 2, 3 ]

12.2.2.5. array_contains

배열이 지정한 값을 담고 있는 경우 참을 반환합니다.

문법

array_contains(array, value)

인자

  • array - 배열

  • value - 검색할 값

예제

  • array_contains(array(1,2,3),2) → 참

12.2.2.6. array_count

Counts the number of occurrences of a given value in an array.

문법

array_count(array, value)

인자

  • array - 배열

  • value - the value to count

예제

  • array_count(array('a', 'b', 'c', 'b'), 'b') → 2

12.2.2.7. array_distinct

지정한 배열의 개별(distinct) 값들을 담고 있는 배열을 반환합니다.

문법

array_distinct(array)

인자

  • array - 배열

예제

  • array_distinct(array(1,2,3,2,1)) → [ 1, 2, 3 ]

12.2.2.8. array_filter

표현식이 참이라고 평가한 항목만 보유한 배열을 반환합니다.

문법

array_filter(array, expression, [limit=0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • array - 배열

  • expression - 각 항목을 평가할 표현식입니다. 변수 @element 는 현재 값으로 대체될 것입니다.

  • limit - maximum number of elements to be returned. Use 0 to return all values.

예제

  • array_filter(array(1,2,3),@element < 3) → [ 1, 2 ]

  • array_filter(array(1,2,3),@element < 3, 1) → [ 1 ]

12.2.2.9. array_find

Returns the lowest index (0 for the first one) of a value within an array. Returns -1 if the value is not found.

문법

array_find(array, value)

인자

  • array - 배열

  • value - 검색할 값

예제

  • array_find(array('a', 'b', 'c'), 'b') → 1

  • array_find(array('a', 'b', 'c', 'b'), 'b') → 1

12.2.2.10. array_first

배열의 첫 번째 값을 반환합니다.

문법

array_first(array)

인자

  • array - 배열

예제

  • array_first(array('a','b','c')) → ‘a’

12.2.2.11. array_foreach

지정한 표현식으로 각 항목을 평가한 배열을 반환합니다.

문법

array_foreach(array, expression)

인자

  • array - 배열

  • expression - 각 항목을 평가할 표현식입니다. 변수 @element 는 현재 값으로 대체될 것입니다.

예제

  • array_foreach(array('a','b','c'),upper(@element)) → [ ‘A’, ‘B’, ‘C’ ]

  • array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ]

12.2.2.12. array_get

Returns the Nth value (0 for the first one) or the last -Nth value (-1 for the last one) of an array.

문법

array_get(array, pos)

인자

  • array - 배열

  • pos - the index to get (0 based)

예제

  • array_get(array('a','b','c'),1) → ‘b’

  • array_get(array('a','b','c'),-1) → ‘c’

힌트

You can also use the index operator ([]) to get a value from an array.

12.2.2.13. array_insert

지정한 위치에 지정한 값을 삽입한 배열을 반환합니다.

문법

array_insert(array, pos, value)

인자

  • array - 배열

  • pos - 추가할 위치 (0 기반)

  • value - 추가할 값

예제

  • array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ]

12.2.2.14. array_intersect

array1의 요소 중 적어도 하나 이상이 array2에 있으면 참을 반환합니다.

문법

array_intersect(array1, array2)

인자

  • array1 - 배열

  • array2 - 또다른 배열

예제

  • array_intersect(array(1,2,3,4),array(4,0,2,5)) → 참

12.2.2.15. array_last

배열의 마지막 값을 반환합니다.

문법

array_last(array)

인자

  • array - 배열

예제

  • array_last(array('a','b','c')) → ‘c’

12.2.2.16. array_length

배열의 요소 개수를 반환합니다.

문법

array_length(array)

인자

  • array - 배열

예제

  • array_length(array(1,2,3)) → 3

12.2.2.17. array_majority

Returns the most common values in an array.

문법

array_majority(array, [option=’all’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • array - 배열

  • option=’all’ - a string specifying the return values handling. Valid options are:

    • all: Default, all most common values are returned in an array.

    • any: Returns one of the most common values.

    • median: Returns the median of the most common values. Non arithmetic values are ignored.

    • real_majority: Returns the value which occurs more than half the size of the array.

예제

  • array_majority(array(0,1,42,42,43), 'all') → [ 42 ]

  • array_majority(array(0,1,42,42,43,1), 'all') → [ 42, 1 ]

  • array_majority(array(0,1,42,42,43,1), 'any') → 1 or 42

  • array_majority(array(0,1,1,2,2), 'median') → 1.5

  • array_majority(array(0,1,42,42,43), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42), 'real_majority') → NULL

  • array_majority(array(0,1,42,42,43,42,42), 'real_majority') → 42

12.2.2.18. array_max

Returns the maximum value of an array.

문법

array_max(array)

인자

  • array - 배열

예제

  • array_max(array(0,42,4,2)) → 42

12.2.2.19. array_mean

Returns the mean of arithmetic values in an array. Non numeric values in the array are ignored.

문법

array_mean(array)

인자

  • array - 배열

예제

  • array_mean(array(0,1,7,66.6,135.4)) → 42

  • array_mean(array(0,84,'a','b','c')) → 42

12.2.2.20. array_median

Returns the median of arithmetic values in an array. Non arithmetic values in the array are ignored.

문법

array_median(array)

인자

  • array - 배열

예제

  • array_median(array(0,1,42,42,43)) → 42

  • array_median(array(0,1,2,42,'a','b')) → 1.5

12.2.2.21. array_min

Returns the minimum value of an array.

문법

array_min(array)

인자

  • array - 배열

예제

  • array_min(array(43,42,54)) → 42

12.2.2.22. array_minority

Returns the less common values in an array.

문법

array_minority(array, [option=’all’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • array - 배열

  • option=’all’ - a string specifying the return values handling. Valid options are:

    • all: Default, all less common values are returned in an array.

    • any: Returns one of the less common values.

    • median: Returns the median of the less common values. Non arithmetic values are ignored.

    • real_minority: Returns values which occur less than half the size of the array.

예제

  • array_minority(array(0,42,42), 'all') → [ 0 ]

  • array_minority(array(0,1,42,42), 'all') → [ 0, 1 ]

  • array_minority(array(0,1,42,42,43,1), 'any') → 0 or 43

  • array_minority(array(1,2,3,3), 'median') → 1.5

  • array_minority(array(0,1,42,42,43), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42), 'real_minority') → [ 42, 43, 0, 1 ]

  • array_minority(array(0,1,42,42,43,42,42), 'real_minority') → [ 43, 0, 1 ]

12.2.2.23. array_prepend

지정한 값을 맨 앞에 추가한 배열을 반환합니다.

문법

array_prepend(array, value)

인자

  • array - 배열

  • value - 추가할 값

예제

  • array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ]

12.2.2.24. array_prioritize

Returns an array sorted using the ordering specified in another array. Values which are present in the first array but are missing from the second array will be added to the end of the result.

문법

array_prioritize(array, array_prioritize)

인자

  • array - 배열

  • array_prioritize - an array with values ordered by priority

예제

  • array_prioritize(array(1, 8, 2, 5), array(5, 4, 2, 1, 3, 8)) → [ 5, 2, 1, 8 ]

  • array_prioritize(array(5, 4, 2, 1, 3, 8), array(1, 8, 6, 5)) → [ 1, 8, 5, 4, 2, 3 ]

12.2.2.25. array_remove_all

모든 항목에서 지정한 값을 제거한 배열을 반환합니다.

문법

array_remove_all(array, value)

인자

  • array - 배열

  • value - 제거할 값

예제

  • array_remove_all(array('a','b','c','b'),'b') → [ ‘a’, ‘c’ ]

12.2.2.26. array_remove_at

지정한 인덱스를 제거한 배열을 반환합니다.

문법

array_remove_at(array, pos)

인자

  • array - 배열

  • pos - 제거할 위치 (0 기반)

예제

  • array_remove_at(array(1,2,3),1) → [ 1, 3 ]

12.2.2.27. array_replace

Returns an array with the supplied value, array, or map of values replaced.

Value & array variant

Returns an array with the supplied value or array of values replaced by another value or an array of values.

문법

array_replace(array, before, after)

인자

  • array - 입력 배열

  • before - the value or array of values to replace

  • after - the value or array of values to use as a replacement

예제

  • array_replace(array('QGIS','SHOULD','ROCK'),'SHOULD','DOES') → [ ‘QGIS’, ‘DOES’, ‘ROCK’ ]

  • array_replace(array(3,2,1),array(1,2,3),array(7,8,9)) → [ 9, 8, 7 ]

  • array_replace(array('Q','G','I','S'),array('Q','S'),'-') → [ ‘-’, ‘G’, ‘I’, ‘-’ ]

맵 변이형

Returns an array with the supplied map keys replaced by their paired values.

문법

array_replace(array, map)

인자

  • array - 입력 배열

  • map - 키와 값을 담고 있는 맵

예제

  • array_replace(array('APP', 'SHOULD', 'ROCK'),map('APP','QGIS','SHOULD','DOES')) → [ ‘QGIS’, ‘DOES’, ‘ROCK’ ]

12.2.2.28. array_reverse

입력 배열의 값들의 순서를 역전시킨 배열을 반환합니다.

문법

array_reverse(array)

인자

  • array - 배열

예제

  • array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ]

12.2.2.29. array_slice

배열의 일부를 반환합니다. start_pos와 end_pos 인수로 반환할 일부를 정의합니다.

문법

array_slice(array, start_pos, end_pos)

인자

  • array - 배열

  • start_pos - 반환할 일부의 시작 위치의 (0 기반) 인덱스입니다. start_pos 인덱스는 반환할 일부에 포함됩니다. start_pos가 음수일 경우, 목록의 마지막부터 인덱스를 셉니다. (-1 기반)

  • end_pos - 반환할 일부의 마지막 위치의 (0 기반) 인덱스입니다. end_pos 인덱스는 반환할 일부에 포함됩니다. end_pos가 음수일 경우, 목록의 마지막부터 인덱스를 셉니다. (-1 기반)

예제

  • array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ]

  • array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ]

  • array_slice(array(1,2,3,4,5),0,0) → [ 1 ]

  • array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ]

  • array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),1,2) → [ ‘Valmiera’, ‘Chugiak’ ]

  • array_slice(array('Dufour','Valmiera','Chugiak','Brighton'),-2,-1) → [ ‘Chugiak’, ‘Brighton’ ]

12.2.2.30. array_sort

지정한 배열의 요소들을 정렬시킨 배열을 반환합니다.

문법

array_sort(array, [ascending=true])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • array - 배열

  • ascending - 배열을 내림차순으로 정렬하려면 이 파라미터를 false로 설정하십시오.

예제

  • array_sort(array(3,2,1)) → [ 1, 2, 3 ]

12.2.2.31. array_sum

Returns the sum of arithmetic values in an array. Non numeric values in the array are ignored.

문법

array_sum(array)

인자

  • array - 배열

예제

  • array_sum(array(0,1,39.4,1.6,'a')) → 42.0

12.2.2.32. array_to_string

배열 요소들을 구분자로 구분하고 빈 값은 선택적인 문자열로 대체한 문자열로 연결합니다.

문법

array_to_string(array, [delimiter=’,’], [empty_value=’’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • array - 입력 배열

  • delimiter - 연결된 배열 요소들을 분리하는 데 사용하는 문자열 구분자

  • empty_value - 빈 (길이가 0인) 값을 대체하는 데 사용할 선택적인 문자열

예제

  • array_to_string(array('1','2','3')) → ‘1,2,3’

  • array_to_string(array(1,2,3),'-') → ‘1-2-3’

  • array_to_string(array('1','','3'),',','0') → ‘1,0,3’

12.2.2.33. generate_series

이어지는 일련의 숫자를 담고 있는 배열을 생성합니다.

문법

generate_series(start, stop, [step=1])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • start - 시퀀스(일련의 숫자)의 첫 번째 값

  • stop - 시퀀스가 도달하면 중지하는 값

  • step - 값 사이의 증분으로 사용되는 값

예제

  • generate_series(1,5) → [ 1, 2, 3, 4, 5 ]

  • generate_series(5,1,-1) → [ 5, 4, 3, 2, 1 ]

12.2.2.34. regexp_matches

그룹을 캡처해서 캡처된 모든 문자열의 배열을, 문자열을 대상으로 지정한 정규 표현식에 그룹 자체가 나타나는 순서대로 반환합니다.

문법

regexp_matches(string, regex, [empty_value=’’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 정규 표현식에 대해 그룹을 캡처해올 문자열

  • regex - 그룹을 캡처하는 데 사용된 정규 표현식

  • empty_value - 빈 (길이가 0인) 값을 대체하는 데 사용할 선택적인 문자열

예제

  • regexp_matches('QGIS=>rocks','(.*)=>(.*)') → [ ‘QGIS’, ‘rocks’ ]

  • regexp_matches('key=>','(.*)=>(.*)','empty value') → [ ‘key’, ‘empty value’ ]

12.2.2.35. string_to_array

문자열을 지정한 구분자와 빈 값을 위한 선택적인 문자열을 사용해서 배열로 분해합니다.

문법

string_to_array(string, [delimiter=’,’], [empty_value=’’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 입력 문자열

  • delimiter - 입력 문자열을 분할하는 데 사용한 문자열 구분자

  • empty_value - 빈 (길이가 0인) 값을 대체하는 데 사용할 선택적인 문자열

예제

  • string_to_array('1,2,3',',') → [ ‘1’, ‘2’, ‘3’ ]

  • string_to_array('1,,3',',','0') → [ ‘1’, ‘0’, ‘3’ ]

12.2.3. 색상 함수

이 그룹은 색상을 처리하기 위한 함수를 담고 있습니다.

12.2.3.1. color_cmyk

색상의 청록색, 자홍색, 황색, 흑색 요소를 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_cmyk(cyan, magenta, yellow, black)

인자

  • cyan - 색상의 청록색(cyan) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • magenta - 색상의 자홍색(magenta) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • yellow - 색상의 황색(yellow) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • black - 색상의 흑색(black) 요소를 0에서 100 사이의 백분율 정수값으로 입력

예제

  • color_cmyk(100,50,0,10) → ‘0,115,230’

12.2.3.2. color_cmyka

색상의 청록색, 자홍색, 황색, 흑색 및 알파(투명도) 요소를 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_cmyka(cyan, magenta, yellow, black, alpha)

인자

  • cyan - 색상의 청록색(cyan) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • magenta - 색상의 자홍색(magenta) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • yellow - 색상의 황색(yellow) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • black - 색상의 흑색(black) 요소를 0에서 100 사이의 백분율 정수값으로 입력

  • alpha - 투명도를 0(완전히 투명)에서 255(완전히 불투명) 사이의 정수값으로 입력

예제

  • color_cmyka(100,50,0,10,200) → ‘0,115,230,200’

12.2.3.3. color_grayscale_average

회색조 필터를 적용하고 지정한 색상에서 나온 문자열 표현을 반환합니다.

문법

color_grayscale_average(color)

인자

  • color - 색상 문자열

예제

  • color_grayscale_average('255,100,50') → ‘135,135,135,255’

12.2.3.4. color_hsl

색상의 색조, 채도, 명도 속성을 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_hsl(hue, saturation, lightness)

인자

  • hue - 색상의 색조를 0에서 360 사이의 정수값으로 입력

  • saturation - 색상의 채도 백분율을 0에서 100 사이의 정수값으로 입력

  • lightness - 색상의 명도 백분율을 0에서 100 사이의 정수값으로 입력

예제

  • color_hsl(100,50,70) → ‘166,217,140’

12.2.3.5. color_hsla

색상의 색조, 채도, 명도 그리고 알파(투명도) 속성을 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_hsla(hue, saturation, lightness, alpha)

인자

  • hue - 색상의 색조를 0에서 360 사이의 정수값으로 입력

  • saturation - 색상의 채도 백분율을 0에서 100 사이의 정수값으로 입력

  • lightness - 색상의 명도 백분율을 0에서 100 사이의 정수값으로 입력

  • alpha - 투명도를 0(완전히 투명)에서 255(완전히 불투명) 사이의 정수값으로 입력

예제

  • color_hsla(100,50,70,200) → ‘166,217,140,200’

12.2.3.6. color_hsv

색상의 색상, 채도, 명도 속성을 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_hsv(hue, saturation, value)

인자

  • hue - 색상의 색조를 0에서 360 사이의 정수값으로 입력

  • saturation - 색상의 채도 백분율을 0에서 100 사이의 정수값으로 입력

  • value - 색상의 명도 백분율을 0에서 100 사이의 정수값으로 입력

예제

  • color_hsv(40,100,100) → ‘255,170,0’

12.2.3.7. color_hsva

색상의 색조, 채도, 명도 그리고 알파(투명도) 속성을 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_hsva(hue, saturation, value, alpha)

인자

  • hue - 색상의 색조를 0에서 360 사이의 정수값으로 입력

  • saturation - 색상의 채도 백분율을 0에서 100 사이의 정수값으로 입력

  • value - 색상의 명도 백분율을 0에서 100 사이의 정수값으로 입력

  • alpha - 투명도를 0(완전히 투명)에서 255(완전히 불투명) 사이의 정수값으로 입력

예제

  • color_hsva(40,100,100,200) → ‘255,170,0,200’

12.2.3.8. color_mix_rgb

지정한 두 색상의 적색, 녹색, 청색 그리고 알파(투명도) 값을 지정한 비율로 혼합한 색상을 표현하는 문자열을 반환합니다.

문법

color_mix_rgb(color1, color2, ratio)

인자

  • color1 - 색상 문자열

  • color2 - 색상 문자열

  • ratio - 비율

예제

  • color_mix_rgb('0,0,0','255,255,255',0.5) → ‘127,127,127,255’

12.2.3.9. color_part

색상 문자열에서 예를 들어 적색 요소 또는 알파 요소 같은 특정 요소를 반환합니다.

문법

color_part(color, component)

인자

  • color - 색상 문자열

  • component - 반환할 색상 요소에 대응하는 문자열입니다. 사용할 수 있는 옵션은 다음과 같습니다:

    • red: RGB 적색 요소 (0-255)

    • green: RGB 녹색 요소 (0-255)

    • blue: RGB 청색 요소 (0-255)

    • alpha: 알파(투명도) 값 (0-255)

    • hue: HSV 색조 (0-360)

    • saturation: HSV 채도 (0-100)

    • value: HSV 명도 (0-100)

    • hsl_hue: HSL 색조 (0-360)

    • hsl_saturation: HSL 채도 (0-100)

    • lightness: HSL 명도 (0-100)

    • cyan: CMYK 청록색 요소 (0-100)

    • magenta: CMYK 자홍색 요소 (0-100)

    • yellow: CMYK 황색 요소 (0-100)

    • black: CMYK 흑색 요소 (0-100)

예제

  • color_part('200,10,30','green') → 10

12.2.3.10. color_rgb

색상의 적색, 녹색, 청색 요소를 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_rgb(red, green, blue)

인자

  • red - 적색 요소를 0에서 255 사이의 정수값으로 입력

  • green - 녹색 요소를 0에서 255 사이의 정수값으로 입력

  • blue - 청색 요소를 0에서 255 사이의 정수값으로 입력

예제

  • color_rgb(255,127,0) → ‘255,127,0’

12.2.3.11. color_rgba

색상의 적색, 녹색, 청색 그리고 알파(투명도) 요소를 기반으로 색상의 문자열 표현을 반환합니다.

문법

color_rgba(red, green, blue, alpha)

인자

  • red - 적색 요소를 0에서 255 사이의 정수값으로 입력

  • green - 녹색 요소를 0에서 255 사이의 정수값으로 입력

  • blue - 청색 요소를 0에서 255 사이의 정수값으로 입력

  • alpha - 투명도를 0(완전히 투명)에서 255(완전히 불투명) 사이의 정수값으로 입력

예제

  • color_rgba(255,127,0,200) → ‘255,127,0,200’

12.2.3.12. create_ramp

색상 문자열 및 단계의 맵에서 나온 그레이디언트 색상표를 반환합니다.

문법

create_ramp(map, [discrete=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • map - 색상 문자열과 간격의 맵

  • discrete - 개별 색상표를 생성하려면 이 파라미터를 참으로 설정하시오.

예제

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ‘255,0,0,255’

12.2.3.13. darker

더 어두운 (또는 더 밝은) 색상 문자열을 반환합니다.

문법

darker(color, factor)

인자

  • color - 색상 문자열

  • factor - 감광(darkening) 인자에 대응하는 정수:

    • 이 인자가 100을 초과하는 경우, 함수가 더 어두운 색상을 반환합니다. (예를 들어 이 인자를 200으로 설정하면 휘도가 절반인 색상을 반환합니다.)

    • 이 인자가 100 미만인 경우 더 밝은 색상을 반환하지만, 이런 목적을 위해서는 lighter() 함수를 사용할 것을 권장합니다.

    • 이 인자가 0 또는 음수인 경우, 불특정 값을 반환합니다.

예제

  • darker('200,10,30', 200) → ‘100,5,15,255’

더 읽어볼 거리: lighter

12.2.3.14. lighter

더 밝은 (또는 더 어두운) 색상 문자열을 반환합니다.

문법

lighter(color, factor)

인자

  • color - 색상 문자열

  • factor - 증광(lightening) 인자에 대응하는 정수:

    • 이 인자가 100을 초과하는 경우, 함수가 더 밝은 색상을 반환합니다. (예를 들어 이 인자를 150으로 설정하면 휘도가 50% 더 높은 색상을 반환합니다.)

    • 이 인자가 100 미만인 경우 더 어두운 색상을 반환하지만, 이런 목적을 위해서는 darker() 함수를 사용할 것을 권장합니다.

    • 이 인자가 0 또는 음수인 경우, 불특정 값을 반환합니다.

예제

  • lighter('200,10,30', 200) → ‘255,158,168,255’

더 읽어볼 거리: darker

12.2.3.15. project_color

프로젝트의 색상 스키마에서 색상을 반환합니다.

문법

project_color(name)

인자

  • name - 색상 이름

예제

  • project_color('Logo color') → ‘20,140,50’

더 읽어볼 거리: 프로젝트 색상 설정하기

12.2.3.16. ramp_color

색상표에서 색상을 표현하는 문자열을 반환합니다.

저장된 색상표 변수

저장한 색상표에서 색상을 표현하는 문자열을 반환합니다

문법

ramp_color(ramp_name, value)

인자

  • ramp_name - 색상표의 이름 문자열, 예를 들면 ‘Spectral’

  • value - 0에서 1 사이의 실수로부터 색상을 선택하는 색상표 상의 위치

예제

  • ramp_color('Spectral',0.3) → ‘253,190,115,255’

참고

사용 가능한 색상표는 QGIS 설치본마다 다릅니다. QGIS 프로젝트를 서로 다른 설치본 간에 이동하는 경우, 이 함수가 예상 결과를 제공하지 않을 수도 있습니다.

표현식으로 생성된 색상표 변종

표현식으로 생성된 색상표에서 색상을 표현하는 문자열을 반환합니다.

문법

ramp_color(ramp, value)

인자

  • ramp - 색상표

  • value - 0에서 1 사이의 실수로부터 색상을 선택하는 색상표 상의 위치

예제

  • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ‘255,0,0,255’

더 읽어볼 거리: 색상표 설정, 색상표 드롭다운 단축키

12.2.3.17. set_color_part

색상 문자열에 대해 예를 들어 적색 요소 또는 알파 요소 같은 특정 색상 요소를 설정합니다.

문법

set_color_part(color, component, value)

인자

  • color - 색상 문자열

  • component - 설정할 색상 요소에 대응하는 문자열입니다. 사용할 수 있는 옵션은 다음과 같습니다:

    • red: RGB 적색 요소 (0-255)

    • green: RGB 녹색 요소 (0-255)

    • blue: RGB 청색 요소 (0-255)

    • alpha: 알파(투명도) 값 (0-255)

    • hue: HSV 색조 (0-360)

    • saturation: HSV 채도 (0-100)

    • value: HSV 명도 (0-100)

    • hsl_hue: HSL 색조 (0-360)

    • hsl_saturation: HSL 채도 (0-100)

    • lightness: HSL 명도 (0-100)

    • cyan: CMYK 청록색 요소 (0-100)

    • magenta: CMYK 자홍색 요소 (0-100)

    • yellow: CMYK 황색 요소 (0-100)

    • black: CMYK 흑색 요소 (0-100)

  • value - 앞에 나열된 범위를 따르는, 색상 요소의 새 값

예제

  • set_color_part('200,10,30','green',50) → ‘200,50,30,255’

12.2.4. 조건 함수

이 그룹은 표현식에서 조건 검사를 처리하는 함수를 담고 있습니다.

12.2.4.1. CASE

일련의 조건들을 평가해서 처음으로 만족하는 조건에 대한 결과를 반환하는 데 CASE를 사용합니다. 조건들을 연속적으로 평가하면서, 조건이 참인 경우 평가를 종료하고 대응하는 결과를 반환합니다. 어떤 조건도 참이 아닌 경우, ELSE 구문에 있는 값을 반환합니다. 또한, ELSE 구문을 설정하지 않았는데 어떤 조건도 참이 아닌 경우, NULL을 반환합니다.

CASE

WHEN condition THEN result

[ …n ]

[ ELSE result ]

END

[ ] 괄호는 선택적인 요소를 표시합니다.

인자

  • WHEN condition - 평가할 조건 표현식

  • THEN result - condition 이 참으로 평가되는 경우 result 를 평가하고 반환합니다.

  • ELSE result - 앞의 조건들이 모두 거짓으로 평가되는 경우 result 를 평가하고 반환합니다.

예제

  • CASE WHEN "name" IS NULL THEN 'None' END → “name” 필드가 NULL인 경우 ‘None’ 문자열을 반환합니다.

  • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → 면적이 10000을 초과하는 경우 ‘Big property’ 문자열을, 면적이 5000과 10000 사이인 경우 ‘Medium property’ 를, 그 미만인 경우 ‘Small property’ 를 반환합니다.

12.2.4.2. coalesce

표현식 목록에서 NULL이 아닌 첫 번째 값을 반환합니다.

이 함수에는 인수 개수에 대한 제약이 없습니다.

문법

coalesce(expression1, expression2, …)

인자

  • expression - 유형에 상관없이 유효한 모든 표현식 또는 값입니다.

예제

  • coalesce(NULL, 2) → 2

  • coalesce(NULL, 2, 3) → 2

  • coalesce(7, NULL, 3*2) → 7

  • coalesce("fieldA", "fallbackField", 'ERROR') → fieldA가 NULL이 아닐 경우 fieldA의 값, NULL인 경우 “fallbackField” 의 값, 또는 둘 다 NULL인 경우 문자열 ‘ERROR’

12.2.4.3. if

조건을 검증해서 결과에 따라 서로 다른 결과를 반환합니다.

문법

if(condition, result_when_true, result_when_false)

인자

  • condition - 확인해야 할 조건

  • result_when_true - 조건이 참이거나, 거짓으로 변환되지 않는 또다른 값일 경우 반환될 결과입니다.

  • result_when_false - 조건이 거짓이거나, 0 또는 ” 처럼 거짓으로 변환되는 또다른 값일 경우 반환될 결과입니다. NULL 또한 거짓으로 변환될 것입니다.

예제

  • if( 1+1=2, 'Yes', 'No' ) → ‘Yes’

  • if( 1+1=3, 'Yes', 'No' ) → ‘No’

  • if( 5 > 3, 1, 0) → 1

  • if( '', 'It is true (not empty)', 'It is false (empty)' ) → ‘It is false (empty)’

  • if( ' ', 'It is true (not empty)', 'It is false (empty)' ) → ‘It is true (not empty)’

  • if( 0, 'One', 'Zero' ) → ‘Zero’

  • if( 10, 'One', 'Zero' ) → ‘One’

12.2.4.4. nullif

value1이 value2와 동일한 경우 NULL 값을 반환합니다; 그렇지 않은 경우 value1을 반환합니다. 조건에 따라 값을 NULL로 대체하는 데 사용할 수 있습니다.

문법

nullif(value1, value2)

인자

  • value1 - 사용해야 하거나 NULL로 대체되어야 하는 값입니다.

  • value2 - NULL 대체를 촉발할 제어 값입니다.

예제

  • nullif('(none)', '(none)') → NULL

  • nullif('text', '(none)') → ‘text’

  • nullif("name", '') → 이름이 빈 문자열(또는 이미 NULL)인 경우 NULL로 대체, 그렇지 않은 경우 이름을 유지합니다.

12.2.4.5. regexp_match

유니코드 문자열 내부에서 정규 표현식과 첫번째로 일치하는 위치를 반환하거나, 하위 문자열을 찾지 못했을 경우 0을 반환합니다.

문법

regexp_match(input_string, regex)

인자

  • input_string - 정규 표현식에 대해 테스트할 문자열

  • regex - 테스트시킬 정규 표현식입니다. 백슬래시 문자는 이중으로 이스케이프시켜야만 합니다. (예: 공백 문자와 매칭하려면 “\\s”, 또는 단어 경계(word boundary)를 일치시키려면 “\\b”)

예제

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

12.2.4.6. try

표현식을 시도하고 오류가 없는 경우 그 값을 반환합니다. 표현식이 오류를 반환하는 경우, 대체값을 지정했다면 대체값을 반환하고, 그렇지 않다면 함수가 NULL을 반환할 것입니다.

문법

try(expression, [alternative])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • expression - 실행해야 할 표현식

  • alternative - 표현식이 오류를 반환하는 경우 반환될 결과입니다.

예제

  • try( to_int( '1' ), 0 ) → 1

  • try( to_int( 'a' ), 0 ) → 0

  • try( to_date( 'invalid_date' ) ) → NULL

12.2.5. 변환 함수

이 함수 그룹은 어떤 데이터 유형을 다른 데이터 유형으로 변환하는 함수를 담고 있습니다. (예: 문자열을 정수형으로/정수형을 문자열로, 바이너리를 문자열로/문자열을 바이너리로, 문자열을 날짜로 등등)

12.2.5.1. from_base64

Decodes a string in the Base64 encoding into a binary value.

문법

from_base64(string)

인자

  • string - 해독할 문자열

예제

  • from_base64('UUdJUw==') → ‘QGIS’

12.2.5.2. hash

지정한 메소드로 문자열로부터 해시를 생성합니다. 1바이트(8비트)를 16진수 “숫자(digit)” 2개로 표현하기 때문에, ‘md4’ (16바이트)는 16 * 2 = 32문자 길이 16진수 문자열을 생성하고 ‘keccak_512’ (64바이트)는 64 * 2 = 128문자 길이 16진수 문자열을 생성합니다.

문법

hash(string, method)

인자

  • string - 해시시킬 문자열

  • method - ‘md4’, ‘md5’, ‘sha1’, ‘sha224’, ‘sha384’, ‘sha512’, ‘sha3_224’, ‘sha3_256’, ‘sha3_384’, ‘sha3_512’, ‘keccak_224’, ‘keccak_256’, ‘keccak_384’, ‘keccak_512’ 와 같은 해시 메소드

예제

  • hash('QGIS', 'md4') → ‘c0fc71c241cdebb6e888cbac0e2b68eb’

  • hash('QGIS', 'md5') → ‘57470aaa9e22adaefac7f5f342f1c6da’

  • hash('QGIS', 'sha1') → ‘f87cfb2b74cdd5867db913237024e7001e62b114’

  • hash('QGIS', 'sha224') → ‘4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0’

  • hash('QGIS', 'sha256') → ‘eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309’

  • hash('QGIS', 'sha384') → ‘91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25506033aee388e554b78714c8734f9cd7e610’

  • hash('QGIS', 'sha512') → ‘c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20fa5e27f0c90ad72d3f1d836eaa5d25cd39897d4cf77e19984668ef58da6e3159f18ac’

  • hash('QGIS', 'sha3_224') → ‘467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d’

  • hash('QGIS', 'sha3_256') → ‘540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575de0e980f’

  • hash('QGIS', 'sha3_384') → ‘96052da1e77679e9a65f60d7ead961b287977823144786386eb43647b0901fd8516fa6f1b9d243fb3f28775e6dde6107’

  • hash('QGIS', 'sha3_512') → ‘900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f8743707c4758051c98445d6b8945ec854ff90655005e02aceb0a2ffc6a0ebf818745d665349’

  • hash('QGIS', 'keccak_224') → ‘5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb201478’

  • hash('QGIS', 'keccak_256') → ‘991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011d327c577e’

  • hash('QGIS', 'keccak_384') → ‘c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d48a1ef9e5886ff463ea8d0fac772ee473bf92f810d’

12.2.5.3. md5

문자열로부터 md5 해시를 생성합니다.

문법

md5(string)

인자

  • string - 해시시킬 문자열

예제

  • md5('QGIS') → ‘57470aaa9e22adaefac7f5f342f1c6da’

12.2.5.4. sha256

문자열로부터 sha256 해시를 생성합니다.

문법

sha256(string)

인자

  • string - 해시시킬 문자열

예제

  • sha256('QGIS') → ‘eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309’

12.2.5.5. to_base64

Encodes a binary value into a string, using the Base64 encoding.

문법

to_base64(value)

인자

  • value - 인코딩할 바이너리 값

예제

  • to_base64('QGIS') → ‘UUdJUw==’

12.2.5.6. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

문법

to_date(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 날짜 값을 나타내는 문자열

  • format - 문자열을 날짜 유형으로 변환하는 데 쓰이는 서식

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

예제

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name ‘June’ for the sixth month, otherwise an error occurs

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

12.2.5.7. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

문법

to_datetime(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 날짜&시간 값을 나타내는 문자열

  • format - 문자열을 날짜&시간 유형으로 변환하는 데 쓰이는 서식

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

예제

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, if the current locale uses the name ‘June’ for the sixth month, otherwise an error occurs

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

12.2.5.8. to_decimal

도, 분, 초 좌표를 십진수 좌표로 변환합니다.

문법

to_decimal(value)

인자

  • value - 도, 분, 초 문자열

예제

  • to_decimal('6°21\'16.445') → 6.3545680555

12.2.5.9. to_dm

좌표를 도, 분으로 변환합니다.

문법

to_dm(coordinate, axis, precision, [formatting=])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • coordinate - 경도 또는 위도 값

  • axis - 좌표의 축. ‘x’ 또는 ‘y’ 입니다.

  • precision - 소수점 이하 자릿수

  • formatting - 서식 유형을 지정합니다. 받을 수 있는 값은 NULL(기본값), ‘aligned’ 또는 ‘suffix’ 입니다.

예제

  • to_dm(6.1545681, 'x', 3) → 6°9.274′

  • to_dm(6.1545681, 'y', 4, 'aligned') → 6°09.2741′N

  • to_dm(6.1545681, 'y', 4, 'suffix') → 6°9.2741′N

12.2.5.10. to_dms

좌표를 도, 분, 초로 변환합니다.

문법

to_dms(coordinate, axis, precision, [formatting=])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • coordinate - 경도 또는 위도 값

  • axis - 좌표의 축. ‘x’ 또는 ‘y’ 입니다.

  • precision - 소수점 이하 자릿수

  • formatting - 서식 유형을 지정합니다. 받을 수 있는 값은 NULL(기본값), ‘aligned’ 또는 ‘suffix’ 입니다.

예제

  • to_dms(6.1545681, 'x', 3) → 6°9′16.445″

  • to_dms(6.1545681, 'y', 4, 'aligned') → 6°09′16.4452″N

  • to_dms(6.1545681, 'y', 4, 'suffix') → 6°9′16.4452″N

12.2.5.11. to_int

문자열을 정수형 숫자로 변환합니다. 값을 정수형으로 변환할 수 없는 경우 (예를 들어 ‘123asd’는 유효하지 않습니다) 아무것도 반환하지 않습니다.

문법

to_int(string)

인자

  • string - 정수형 숫자로 변환할 문자열

예제

  • to_int('123') → 123

12.2.5.12. to_interval

문자열을 간격 유형으로 변환합니다. 날짜 유형의 월, 일, 시 등을 추출하는 데 사용할 수 있습니다.

문법

to_interval(string)

인자

  • string - 간격을 나타내는 문자열. 사용할 수 있는 서식은 {n} days {n} hours {n} months 를 포함합니다.

예제

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → interval: 30 minutes

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.5.13. to_real

문자열을 실수형 숫자로 변환합니다. 값을 실수형으로 변환할 수 없는 경우 (예를 들어 ‘123.56asd’ 는 유효하지 않습니다) 아무것도 반환하지 않습니다. 정밀도가 변환 결과보다 작은 경우 변경 사항을 저장한 다음 숫자를 반올림합니다.

문법

to_real(string)

인자

  • string - 실수형 숫자로 변환할 문자열

예제

  • to_real('123.45') → 123.45

12.2.5.14. to_string

숫자를 문자열로 변환합니다.

문법

to_string(number)

인자

  • number - 정수형 또는 실수형 값. 문자열로 변환할 숫자입니다.

예제

  • to_string(123) → ‘123’

12.2.5.15. to_time

문자열을 시간 객체로 변환합니다. 문자열을 파싱하기 위해 부가적인 서식 문자열을 지정할 수 있습니다; 해당 서식에 대한 추가 문서를 보고 싶다면 QTime::fromString 을 참조하세요.

문법

to_time(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 시간 값을 나타내는 문자열

  • format - 문자열을 시간 유형으로 변환하는 데 쓰이는 서식

  • language - 문자열을 시간 유형으로 변환하는 데 사용된 언어 (소문자, 2-3문자, ISO 639 언어 코드)

예제

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

12.2.6. 사용자 지정 함수

이 그룹은 사용자가 생성한 함수를 담고 있습니다. 자세한 내용은 함수 편집기 를 참조하세요.

12.2.7. 날짜 및 시간 함수

이 함수 그룹은 날짜 및 시간 데이터를 처리하기 위한 함수들을 담고 있습니다. 이 그룹은 변환 함수 그룹과 몇몇 함수를(to_date, to_time, to_datetime, to_interval) 그리고 ref:string_functions 그룹과도 함수를(format_date) 공유합니다.

참고

필드에 날짜, 날짜&시간, 간격 유형을 저장하기

데이터소스 제공자에 따라 날짜, 시간, 날짜&시간 값을 필드에 직접 저장할 수 있습니다. (예를 들어 Shapefile은 날짜 유형은 받아들이지만 날짜&시간 또는 시간 유형은 받아들이지 못 합니다.) 다음은 이 제약 사항을 넘어서기 위한 몇 가지 제안입니다.

  • format_date() 함수를 사용하면 텍스트 유형 필드에 날짜, 날짜&시간, 시간 을 저장할 수 있습니다.

  • 간격 을 날짜 추출 함수 중 하나로 처리한 다음 (예: day() 함수는 날짜로 표현된 간격을 반환합니다) 정수 또는 실수 유형 필드에 저장할 수 있습니다.

12.2.7.1. age

두 날짜 또는 두 날짜&시간 사이의 차이를 간격 유형으로 반환합니다.

그 차를 Interval 로 반환하는데, 쓸만한 정보를 추출하려면 다음 함수들 가운데 하나와 함께 사용되어야 합니다:

  • year

  • month

  • week

  • day

  • hour

  • minute

  • second

문법

age(datetime1, datetime2)

인자

  • datetime1 - 뒷 날짜를 나타내는 문자열, 날짜 또는 날짜&시간

  • datetime2 - 앞 날짜를 나타내는 문자열, 날짜 또는 날짜&시간

예제

  • day(age('2012-05-12','2012-05-02')) → 10

  • hour(age('2012-05-12','2012-05-02')) → 240

12.2.7.2. datetime_from_epoch

협정 세계시(Qt.UTC) 1970-01-01T00:00:00.000부터 셈한 밀리초(msec)의 개수를 Qt.LocalTime으로 변환한 날짜 및 시간인 날짜&시간을 반환합니다.

문법

datetime_from_epoch(int)

인자

  • int - 숫자 (밀리초)

예제

  • datetime_from_epoch(1483225200000) → 2017-01-01T00:00:00

12.2.7.3. day

날짜 유형에서 일(日) 부분을, 또는 간격 유형에서 일수를 추출합니다.

날짜 변이형

날짜 또는 날짜&시간에서 일 부분을 추출합니다.

문법

day(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • day('2012-05-12') → 12

**간격 변이형*

길이를 간격의 일 단위로 계산합니다.

문법

day(interval)

인자

  • interval - 일 수를 반환할 간격 값

예제

  • day(to_interval('3 days')) → 3

  • day(to_interval('3 weeks 2 days')) → 23

  • day(age('2012-01-01','2010-01-01')) → 730

12.2.7.4. day_of_week

지정한 날짜 또는 날짜&시간에서 해당 주의 요일을 반환합니다. 반환될 값 범위는 0에서 6이며, 0은 일요일, 6은 토요일입니다.

문법

day_of_week(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • day_of_week(to_date('2015-09-21')) → 1

12.2.7.5. epoch

유닉스 원기(unix epoch)와 지정한 날짜값 사이의 간격을 밀리초 단위로 반환합니다.

문법

epoch(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • epoch(to_date('2017-01-01')) → 1483203600000

12.2.7.6. format_date

날짜 유형 또는 문자열을 사용자 정의 문자열 서식으로 변환합니다. Qt 날짜&시간 서식 문자열을 사용하십시오. QDateTime::toString 을 참조하세요.

문법

format_date(datetime, format, [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • datetime - 날짜, 시간 또는 날짜&시간 값

  • format - 문자열을 서식화하는 데 쓰이는 문자열 템플릿

    표현식

    산출물

    d

    앞에 0이 없는 숫자 일 (1에서 31)

    dd

    앞에 0이 있는 숫자 일 (01에서 31)

    ddd

    축약된 현지 요일 이름 (예 : ‘Mon’ 에서 ‘Sun’)

    dddd

    축약하지 않은 현지 요일 이름 (예: ‘Monday’ 에서 ‘Sunday’)

    M

    앞에 0이 없는 숫자 월 (1-12)

    MM

    앞에 0이 있는 숫자 월 (01-12)

    MMM

    축약된 현지 월 이름 (예 : ‘Jan’ 에서 ‘Dec’)

    MMMM

    축약하지 않은 현지 월 이름 (예: ‘January’ 에서 ‘December’)

    yy

    두 자리 숫자 연도 (00-99)

    yyyy

    네 자리 숫자 연도

    다음 표현식은 서식 문자열의 시간 부분에 쓰일 수도 있습니다:

    표현식

    산출물

    h

    앞에 0이 없는 시간 (0에서 23 또는 AM/PM 표시가 있는 경우 1에서 12)

    hh

    앞에 0이 있는 시간 (00에서 23 또는 AM/PM 표시가 있는 경우 01에서 12)

    H

    앞에 0이 없는 시간 (AM/PM 표시가 있는 경우에도 0에서 23)

    HH

    앞에 0이 있는 시간 (AM/PM 표시가 있는 경우에도 00에서 23)

    m

    앞에 0이 없는 분 (0에서 59)

    mm

    앞에 0이 있는 분 (00에서 59)

    s

    앞에 0이 없는 초 (0에서 59)

    ss

    앞에 0이 있는 초 (00에서 59)

    z

    뒤에 0이 없는 밀리초 (0에서 999)

    zzz

    뒤에 0이 있는 밀리초 (000에서 999)

    AP or A

    AM/PM 시간으로 해석합니다. AP 는 ‘AM’ 또는 ‘PM’ 이어야만 합니다.

    ap or a

    AM/PM 시간으로 해석합니다. ap 는 ‘am’ 또는 ‘pm’ 이어야만 합니다.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

예제

  • format_date('2012-05-15','dd.MM.yyyy') → ‘15.05.2012’

  • format_date('2012-05-15','d MMMM yyyy','fr') → ‘15 mai 2012’

  • format_date('2012-05-15','dddd') → ‘Tuesday’, if the current locale is an English variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → ‘15.05.12’

  • format_date('13:54:20','hh:mm AP') → ‘01:54 PM’

12.2.7.7. hour

날짜&시간 또는 시간에서 시 부분을, 또는 간격에서 시의 개수를 추출합니다.

시간 변이형

시간 또는 날짜&시간에서 시 부분을 추출합니다.

문법

hour(datetime)

인자

  • datetime - 시간 또는 날짜&시간 값

예제

  • hour( to_datetime('2012-07-22 13:24:57') ) → 13

**간격 변이형*

길이를 간격의 시간 단위로 계산합니다.

문법

hour(interval)

인자

  • interval - 시간 개수를 반환할 간격 값

예제

  • hour(to_interval('3 hours')) → 3

  • hour(age('2012-07-22T13:00:00','2012-07-22T10:00:00')) → 3

  • hour(age('2012-01-01','2010-01-01')) → 17520

12.2.7.8. make_date

년, 월, 일 숫자로부터 날짜값을 생성합니다.

문법

make_date(year, month, day)

인자

  • year - 년도 번호. 1에서 99까지의 년도를 그대로 해석합니다. 0년도는 유효하지 않습니다.

  • month - 월 번호, 1=January

  • day - 일 번호, 월의 첫날을 1로 시작

예제

  • make_date(2020,5,4) → date value 2020-05-04

12.2.7.9. make_datetime

년, 월, 일, 시, 분, 초 숫자로부터 날짜&시간 값을 생성합니다.

문법

make_datetime(year, month, day, hour, minute, second)

인자

  • year - 년도 번호. 1에서 99까지의 년도를 그대로 해석합니다. 0년도는 유효하지 않습니다.

  • month - 월 번호, 1=January

  • day - 일 번호, 월의 첫날을 1로 시작

  • hour - 시간 번호

  • minute - 분

  • second - 초(밀리초를 포함한 분수값)

예제

  • make_datetime(2020,5,4,13,45,30.5) → 날짜&시간 값 2020-05-04 13:45:30.500

12.2.7.10. make_interval

년, 월, 주, 일, 시, 분, 초 값으로부터 간격값을 생성합니다.

문법

make_interval([years=0], [months=0], [weeks=0], [days=0], [hours=0], [minutes=0], [seconds=0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • years - 연도 개수(1년 길이를 365.25일로 가정)

  • months - 월 개수(1개월 길이를 30일로 가정)

  • weeks - 주 개수

  • days - 일 개수

  • hours - 시간 개수

  • minutes - 분 개수

  • seconds - 초 개수

예제

  • make_interval(hours:=3) → interval: 3 hours

  • make_interval(days:=2, hours:=3) → interval: 2.125 days

  • make_interval(minutes:=0.5, seconds:=5) → interval: 35 seconds

12.2.7.11. make_time

시, 분, 초 숫자로부터 시간값을 생성합니다.

문법

make_time(hour, minute, second)

인자

  • hour - 시간 번호

  • minute - 분

  • second - 초(밀리초를 포함한 분수값)

예제

  • make_time(13,45,30.5) → time value 13:45:30.500

12.2.7.12. minute

날짜&시간 또는 시간에서 분 부분을, 또는 간격에서 분의 개수를 추출합니다.

시간 변이형

시간 또는 날짜&시간에서 분 부분을 추출합니다.

문법

minute(datetime)

인자

  • datetime - 시간 또는 날짜&시간 값

예제

  • minute( to_datetime('2012-07-22 13:24:57') ) → 24

**간격 변이형*

길이를 간격의 분 단위로 계산합니다.

문법

minute(interval)

인자

  • interval - 분의 개수를 반환할 간격 값

예제

  • minute(to_interval('3 minutes')) → 3

  • minute(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 20

  • minute(age('2012-01-01','2010-01-01')) → 1051200

12.2.7.13. month

날짜 유형에서 월 부분을, 또는 간격 유형에서 개월수를 추출합니다.

날짜 변이형

날짜 또는 날짜&시간에서 월 부분을 추출합니다.

문법

month(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • month('2012-05-12') → 05

**간격 변이형*

길이를 간격의 월 단위로 계산합니다.

문법

month(interval)

인자

  • interval - 개월수를 반환할 간격 값

예제

  • month(to_interval('3 months')) → 3

  • month(age('2012-01-01','2010-01-01')) → 4.03333

12.2.7.14. now

현재 날짜와 시간을 반환합니다. 이 함수는 정적이며 평가하는 동안 일관된 결과를 반환할 것입니다. 반환된 시간은 표현식이 준비된 시간입니다.

문법

now()

예제

  • now() → 2012-07-22T13:24:57

12.2.7.15. second

날짜&시간 또는 시간에서 초 부분을, 또는 간격에서 초의 개수를 추출합니다.

시간 변이형

시간 또는 날짜&시간에서 초 부분을 추출합니다.

문법

second(datetime)

인자

  • datetime - 시간 또는 날짜&시간 값

예제

  • second( to_datetime('2012-07-22 13:24:57') ) → 57

**간격 변이형*

길이를 간격의 초 단위로 계산합니다.

문법

second(interval)

인자

  • interval - 초의 개수를 반환할 간격 값

예제

  • second(to_interval('3 minutes')) → 180

  • second(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 1200

  • second(age('2012-01-01','2010-01-01')) → 63072000

12.2.7.16. to_date

Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

문법

to_date(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 날짜 값을 나타내는 문자열

  • format - 문자열을 날짜 유형으로 변환하는 데 쓰이는 서식

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date. By default the current QGIS user locale is used.

예제

  • to_date('2012-05-04') → 2012-05-04

  • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29, if the current locale uses the name ‘June’ for the sixth month, otherwise an error occurs

  • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29

12.2.7.17. to_datetime

Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString, QTime::fromString or the documentation of the format_date function for additional documentation on the format. By default the current QGIS user locale is used.

문법

to_datetime(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 날짜&시간 값을 나타내는 문자열

  • format - 문자열을 날짜&시간 유형으로 변환하는 데 쓰이는 서식

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime. By default the current QGIS user locale is used.

예제

  • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00

  • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34, if the current locale uses the name ‘June’ for the sixth month, otherwise an error occurs

  • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm','fr') → 2019-06-29T12:34

12.2.7.18. to_interval

문자열을 간격 유형으로 변환합니다. 날짜 유형의 월, 일, 시 등을 추출하는 데 사용할 수 있습니다.

문법

to_interval(string)

인자

  • string - 간격을 나타내는 문자열. 사용할 수 있는 서식은 {n} days {n} hours {n} months 를 포함합니다.

예제

  • to_interval('1 day 2 hours') → interval: 1.08333 days

  • to_interval( '0.5 hours' ) → interval: 30 minutes

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.7.19. to_time

문자열을 시간 객체로 변환합니다. 문자열을 파싱하기 위해 부가적인 서식 문자열을 지정할 수 있습니다; 해당 서식에 대한 추가 문서를 보고 싶다면 QTime::fromString 을 참조하세요.

문법

to_time(string, [format], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 시간 값을 나타내는 문자열

  • format - 문자열을 시간 유형으로 변환하는 데 쓰이는 서식

  • language - 문자열을 시간 유형으로 변환하는 데 사용된 언어 (소문자, 2-3문자, ISO 639 언어 코드)

예제

  • to_time('12:30:01') → 12:30:01

  • to_time('12:34','HH:mm') → 12:34:00

  • to_time('12:34','HH:mm','fr') → 12:34:00

12.2.7.20. week

날짜 유형에서 주(週) 번호를, 또는 간격 유형에서 주의 개수를 추출합니다.

날짜 변이형

날짜 또는 날짜&시간에서 주의 번호를 추출합니다.

문법

week(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • week('2012-05-12') → 19

**간격 변이형*

길이를 간격의 주 단위로 계산합니다.

문법

week(interval)

인자

  • interval - 개월수를 반환할 간격 값

예제

  • week(to_interval('3 weeks')) → 3

  • week(age('2012-01-01','2010-01-01')) → 104.285

12.2.7.21. year

날짜 유형에서 연도 부분을, 또는 간격 유형에서 연수를 추출합니다.

날짜 변이형

날짜 또는 날짜&시간에서 연도 부분을 추출합니다.

문법

year(date)

인자

  • date - 날짜 또는 날짜&시간 값

예제

  • year('2012-05-12') → 2012

**간격 변이형*

길이를 간격의 연 단위로 계산합니다.

문법

year(interval)

인자

  • interval - 년의 개수를 반환할 간격 값

예제

  • year(to_interval('3 years')) → 3

  • year(age('2012-01-01','2010-01-01')) → 1.9986

다음은 몇몇 예시입니다:

이런 함수들 외에도, - (빼기) 연산자를 통해 날짜, 날짜&시간 또는 시간 유형을 뺄셈하면 간격 유형을 반환할 것입니다.

+ (더하기) 또는 - (빼기) 연산자를 이용해서 날짜, 날짜&시간 또는 시간 유형에 간격 유형을 더하거나 빼면 날짜&시간 유형을 반환합니다.

  • QGIS 3.0 배포일까지 며칠 남았는지 알아보려면:

    to_date('2017-09-29') - to_date(now())
    -- Returns <interval: 203 days>
    
  • 같은 내용을 시간 유형으로:

    to_datetime('2017-09-29 12:00:00') - now()
    -- Returns <interval: 202.49 days>
    
  • 현재부터 100일 후의 날짜&시간을 얻으려면:

    now() + to_interval('100 days')
    -- Returns <datetime: 2017-06-18 01:00:00>
    

12.2.8. 필드 및 값

Contains a list of fields from the layer, and special values.

사용자 표현식에 필드명을 추가하려면 필드명을 더블클릭하십시오. 필드명을 (가급적 큰따옴표 안에) 입력하거나, 또는 필드의 별명 을 입력해도 됩니다.

표현식에 사용할 필드값을 가져오려면, 적절한 필드를 선택한 다음 나타나는 위젯에서 10 SamplesAll Unique 가운데 하나를 선택하십시오. 요청한 값들이 표시되는 목록 맨 위에 있는 Search 란을 통해 결과를 필터링할 수 있습니다. 필드를 오른쪽 클릭해서도 표본 값에 접근할 수 있습니다.

작성 중인 표현식에 값을 추가하려면, 목록에 있는 값을 더블클릭하십시오. 해당 값이 문자열 유형인 경우 작은따옴표를 추가해야 합니다. 그 외 유형은 따옴표가 필요하지 않습니다.

12.2.8.1. NULL

Equates to a NULL value.

문법

NULL

예제

  • NULL → a NULL value

참고

To test for NULL use an IS NULL or IS NOT NULL expression.

12.2.9. 파일 및 경로 함수

이 그룹은 파일 및 경로 명칭을 처리하는 함수를 담고 있습니다.

12.2.9.1. base_file_name

디렉터리 또는 파일 확장자 없이 파일의 기본명(base name)을 반환합니다.

문법

base_file_name(path)

인자

  • path - 파일 경로

예제

  • base_file_name('/home/qgis/data/country_boundaries.shp') → ‘country_boundaries’

12.2.9.2. exif

Retrieves exif tag values from an image file.

문법

exif(path, [tag])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • path - An image file path.

  • tag - The tag to return. If empty, a map with all exif tag values will be returned.

예제

  • exif('/my/photo.jpg','Exif.Image.Orientation') → 0

12.2.9.3. file_exists

파일 경로가 실재하는 경우 참을 반환합니다.

문법

file_exists(path)

인자

  • path - 파일 경로

예제

  • file_exists('/home/qgis/data/country_boundaries.shp') → 참

12.2.9.4. file_name

디렉터리를 제외한 (파일 확장자 포함) 파일명을 반환합니다.

문법

file_name(path)

인자

  • path - 파일 경로

예제

  • file_name('/home/qgis/data/country_boundaries.shp') → ‘country_boundaries.shp’

12.2.9.5. file_path

파일 경로의 디렉터리 요소를 반환합니다. 파일명을 포함하지 않습니다.

문법

file_path(path)

인자

  • path - 파일 경로

예제

  • file_path('/home/qgis/data/country_boundaries.shp') → ‘/home/qgis/data’

12.2.9.6. file_size

파일의 (바이트 단위) 용량을 반환합니다.

문법

file_size(path)

인자

  • path - 파일 경로

예제

  • file_size('/home/qgis/data/country_boundaries.geojson') → 5674

12.2.9.7. file_suffix

파일 경로에서 파일 접미어(확장자)를 반환합니다.

문법

file_suffix(path)

인자

  • path - 파일 경로

예제

  • file_suffix('/home/qgis/data/country_boundaries.shp') → ‘shp’

12.2.9.8. is_directory

경로가 디렉터리에 대응하는 경우 참을 반환합니다.

문법

is_directory(path)

인자

  • path - 파일 경로

예제

  • is_directory('/home/qgis/data/country_boundaries.shp') → 거짓

  • is_directory('/home/qgis/data/') → 참

12.2.9.9. is_file

경로가 파일에 대응하는 경우 참을 반환합니다.

문법

is_file(path)

인자

  • path - 파일 경로

예제

  • is_file('/home/qgis/data/country_boundaries.shp') → 참

  • is_file('/home/qgis/data/') → 거짓

12.2.10. 양식 함수

이 함수 그룹은 속성 양식 맥락에서만, 예를 들면 필드 위젯 설정에서 실행되는 함수들을 담고 있습니다.

12.2.10.1. current_parent_value

내장 양식 맥락에서만 사용할 수 있는 이 함수는 현재 편집되고 있는 부모 양식에 있는 필드의 현재 저장되지 않은 값을 반환합니다. 현재 편집되고 있는 또는 부모 레이어에 아직 추가되지 않은 피처에 대한 부모 피처의 실제 속성값과는 다를 것입니다. 값-관계 위젯 필터 표현식에서 사용되는 경우, 이 함수를 양식을 내장 맥락에서 사용하지 않는 경우 레이어에서 실제 부모 피처를 가져올 수 있는 ‘coalesce()’ 형태로 감싸야 합니다.

문법

current_parent_value(field_name)

인자

  • field_name - 현재 부모 양식에 있는 필드 이름

예제

  • current_parent_value( 'FIELD_NAME' ) → 부모 양식에 있는 ‘FIELD_NAME’ 필드의 현재 값입니다.

12.2.10.2. current_value

현재 편집중인 양식 또는 테이블 행에 있는 필드의 현재 저장되지 않은 값을 반환합니다. 이 객체의 속성은 현재 편집 중이거나 아직 레이어에 추가되지 않은 객체의 실제 속성 값과 다릅니다.

문법

current_value(field_name)

인자

  • field_name - 현재 양식 또는 테이블 행의 필드 이름

예제

  • current_value( 'FIELD_NAME' ) → ‘FIELD_NAME’ 필드의 현재 값입니다.

12.2.11. 퍼지 매칭 함수

이 그룹은 값들을 퍼지 비교하기 위한 함수를 담고 있습니다.

12.2.11.1. hamming_distance

두 문자열 사이의 해밍 거리(Hamming distance)를 반환합니다. 이는 입력 문자열들 내에서 대응하는 위치에 있는 문자들이 서로 다른 경우의 개수와 같습니다. 입력 문자열은 동일한 길이여야 하며 대소문자를 구분해서 비교합니다.

문법

hamming_distance(string1, string2)

인자

  • string1 - 문자열

  • string2 - 문자열

예제

  • hamming_distance('abc','xec') → 2

  • hamming_distance('abc','ABc') → 2

  • hamming_distance(upper('abc'),upper('ABC')) → 0

  • hamming_distance('abc','abcd') → NULL

12.2.11.2. levenshtein

두 문자열 사이의 레벤시테인 편집 거리(Levenshtein edit distance)를 반환합니다. 이는 어떤 문자열을 다른 문자열로 변경하는 데 필요한 문자 편집(삽입, 삭제 또는 치환)의 최소 횟수와 같습니다.

레벤시테인 거리란 두 문자열 사이의 유사성을 측정하는 방법입니다. 거리가 짧을수록 두 문자열이 더 유사하고, 거리가 멀수록 두 문자열이 더 다르다는 의미입니다. 이 거리는 대소문자를 구분합니다.

문법

levenshtein(string1, string2)

인자

  • string1 - 문자열

  • string2 - 문자열

예제

  • levenshtein('kittens','mitten') → 2

  • levenshtein('Kitten','kitten') → 1

  • levenshtein(upper('Kitten'),upper('kitten')) → 0

12.2.11.3. longest_common_substring

두 문자열 사이의 가장 긴 공통 하위 문자열을 반환합니다. 이 하위 문자열은 두 입력 문자열의 하위 문자열 가운데 동일하면서 가장 긴 문자열입니다. 예를 들어, “ABABC” 와 “BABCA” 의 가장 긴 공통 하위 문자열은 “ABC” 입니다. 하위 문자열은 대소문자를 구분합니다.

문법

longest_common_substring(string1, string2)

인자

  • string1 - 문자열

  • string2 - 문자열

예제

  • longest_common_substring('ABABC','BABCA') → ‘BABC’

  • longest_common_substring('abcDeF','abcdef') → ‘abc’

  • longest_common_substring(upper('abcDeF'),upper('abcdex')) → ‘ABCDE’

12.2.11.4. soundex

문자열의 사운덱스 표현(Soundex representation)을 반환합니다. 사운덱스란 유사 발음 검색 알고리즘으로, 문자열이 서로 비슷하게 발음되는 경우 동일한 사운덱스 코드로 표현될 것입니다.

문법

soundex(string)

인자

  • string - 문자열

예제

  • soundex('robert') → ‘R163’

  • soundex('rupert') → ‘R163’

  • soundex('rubin') → ‘R150’

12.2.12. 일반 함수

이 그룹은 일반으로 분류된 함수를 담고 있습니다.

12.2.12.1. env

환경 변수를 받아 그 내용을 문자열로 반환합니다. 변수를 찾을 수 없는 경우, NULL을 반환할 것입니다. 드라이브 문자 또는 경로 접두어 같은 시스템 전용 환경 설정을 주입하는 데 편리합니다. 환경 변수의 정의는 운영 체제에 따라 달라지기 때문에, 이를 어떻게 설정할 수 있는지에 대해 시스템 관리자 또는 운영 체제 문서를 확인해보십시오.

문법

env(name)

인자

  • name - 추출해야 할 환경 변수의 이름입니다.

예제

  • env( 'LANG' ) → ‘en_US.UTF-8’

  • env( 'MY_OWN_PREFIX_VAR' ) → ‘Z:’

  • env( 'I_DO_NOT_EXIST' ) → NULL

12.2.12.2. eval

문자열로 전달된 표현식을 평가합니다. 컨텍스트 변수 또는 필드로 전달되는 동적 파라미터를 확장하는 데 유용합니다.

문법

eval(expression)

인자

  • expression - 표현식 문자열

예제

  • eval('\'nice\'') → ‘nice’

  • eval(@expression_var) → [@expression_var 평가 결과라면 무엇이든…]

12.2.12.3. eval_template

문자열로 넘겨진 템플릿을 평가합니다. 컨텍스트 변수 또는 필드로 전달되는 동적 파라미터를 확장하는 데 유용합니다.

문법

eval_template(template)

인자

  • template - 템플릿 문자열

예제

  • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS

12.2.12.4. is_layer_visible

지정한 레이어가 현재 보이면 참을 반환합니다.

문법

is_layer_visible(layer)

인자

  • layer - 레이어명 또는 레이어 ID 가운데 하나를 나타내는 문자열

예제

  • is_layer_visible('baseraster') → 참

12.2.12.5. mime_type

Returns the mime type of the binary data.

문법

mime_type(bytes)

인자

  • bytes - the binary data

예제

  • mime_type('<html><body></body></html>') → text/html

  • mime_type(from_base64('R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAIAOw==')) → image/gif

12.2.12.6. var

지정한 변수 내부에 저장된 값을 반환합니다.

문법

var(name)

인자

  • name - 변수 이름

예제

  • var('qgis_version') → ‘2.12’

더 읽어볼 거리: 기본 변수 목록

12.2.12.7. with_variable

이 함수는 제3의 인수로 제공될 모든 표현식 코드를 위한 변수를 설정합니다. 동일한 계산 값을 서로 다른 위치에서 사용해야 하는 복잡한 표현식에서만 유용합니다.

문법

with_variable(name, value, expression)

인자

  • name - 설정할 변수의 이름

  • value - 설정할 값

  • expression - 변수를 사용할 수 있는 표현식

예제

  • with_variable('my_sum', 1 + 2 + 3, @my_sum * 2 + @my_sum * 5) → 42

12.2.13. 도형 함수

이 그룹은 도형 객체를 대상으로 하는 (예: buffer, transform, $area 등) 함수를 담고 있습니다.

12.2.13.1. affine_transform

Returns the geometry after an affine transformation. Calculations are in the Spatial Reference System of this geometry. The operations are performed in a scale, rotation, translation order. If there is a Z or M offset but the coordinate is not present in the geometry, it will be added.

문법

affine_transform(geometry, delta_x, delta_y, rotation_z, scale_x, scale_y, [delta_z=0], [delta_m=0], [scale_z=1], [scale_m=1])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • delta_x - x-axis translation

  • delta_y - y-axis translation

  • rotation_z - rotation around z-axis in degrees counter-clockwise

  • scale_x - x-axis scale factor

  • scale_y - y-axis scale factor

  • delta_z - z-axis translation

  • delta_m - m-axis translation

  • scale_z - z-axis scale factor

  • scale_m - m-axis scale factor

예제

  • geom_to_wkt(affine_transform(geom_from_wkt('LINESTRING(1 1, 2 2)'), 2, 2, 0, 1, 1)) → ‘LineString (3 3, 4 4)’

  • geom_to_wkt(affine_transform(geom_from_wkt('POLYGON((0 0, 0 3, 2 2, 0 0))'), 0, 0, -90, 1, 2)) → ‘Polygon ((0 0, 6 0, 4 -2, 0 0))’

  • geom_to_wkt(affine_transform(geom_from_wkt('POINT(3 1)'), 0, 0, 0, 1, 1, 5, 0)) → ‘PointZ (3 1 5)’

12.2.13.2. angle_at_vertex

라인스트링 도형 상에 지정한 꼭짓점에서 도형에 대한 이등분선 각도(평균 각도)를 반환합니다. 여기서 각도는 진북에서 시계 방향으로 측정한 도 단위입니다.

문법

angle_at_vertex(geometry, vertex)

인자

  • geometry - 라인스트링 도형

  • vertex - 0부터 시작하는 꼭짓점 인덱스; 음의 값인 경우, 선택한 꼭짓점 인덱스는 꼭짓점 총 개수에서 절대값을 뺀 값이 될 것입니다

예제

  • angle_at_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45.0

12.2.13.3. $area

현재 객체의 면적을 반환합니다. 이 함수는 현재 프로젝트의 타원체 설정과 면적 단위 설정을 따라 면적을 계산합니다. 예를 들어 프로젝트에 타원체를 설정했다면 타원체 기반으로 면적을 계산하고, 타원체를 설정하지 않았다면 평면 상에서 면적을 계산합니다.

문법

$area

예제

  • $area → 42

12.2.13.4. area

도형 폴리곤 객체의 면적을 계산합니다. 언제나 해당 도형의 공간 참조 시스템(SRS) 안에서 평면 측량해서 계산하므로, 반환한 면적의 단위가 SRS 용 단위와 일치할 것입니다. 이것이 $area 함수가 수행하는 계산과 다른 점인데, $area 함수는 프로젝트의 타원체 및 면적 단위 설정을 기반으로 타원체 상에서 계산을 수행할 것입니다.

문법

area(geometry)

인자

  • geometry - 폴리곤 도형 객체

예제

  • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0

12.2.13.5. azimuth

포인트 a의 수직선에서 포인트 b로 시계 방향으로 측정한 진북 기준 방위각을 라디안 단위 각도로 반환합니다.

문법

azimuth(point_a, point_b)

인자

  • point_a - 포인트 도형

  • point_b - 포인트 도형

예제

  • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689

  • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689

12.2.13.6. boundary

입력 도형의 경계(예: 도형의 위상 경계)를 조합한 닫힌 경계를 반환합니다. 예를 들면, 폴리곤 도형은 내부에 있는 각 고리 별로 라인스트링으로 이루어진 경계를 가지게 될 것입니다. 포인트 또는 도형 집합 같은 일부 도형 유형들은 정의된 경계를 보유하고 있지 않기 때문에 NULL을 반환할 것입니다.

문법

boundary(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‘LineString(1 1,0 0,-1 1,1 1)’

  • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → ‘MultiPoint ((1 1),(-1 1))’

더 읽어볼 거리: 경계 알고리즘

12.2.13.7. bounds

입력 도형의 경계 상자(bounding box)를 표현하는 도형을 반환합니다. 해당 도형의 공간 참조 시스템 상에서 경계 상자를 계산합니다.

문법

bounds(geometry)

인자

  • geometry - 도형

예제

  • bounds($geometry) → 현재 피처 도형의 경계 상자

  • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‘Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))’

../../../_images/bounding_box.png

그림 12.4 Black lines represent the bounding boxes of each polygon feature

더 읽어볼 거리: 경계 상자 알고리즘

12.2.13.8. bounds_height

도형의 경계 상자(bounding box)의 높이를 표현하는 도형을 반환합니다. 해당 도형의 공간 참조 시스템 상에서 경계 상자를 계산합니다.

문법

bounds_height(geometry)

인자

  • geometry - 도형

예제

  • bounds_height($geometry) → 현재 피처 도형의 경계 상자의 높이

  • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1

12.2.13.9. bounds_width

도형의 경계 상자(bounding box)의 너비를 표현하는 도형을 반환합니다. 해당 도형의 공간 참조 시스템 상에서 경계 상자를 계산합니다.

문법

bounds_width(geometry)

인자

  • geometry - 도형

예제

  • bounds_width($geometry) → 현재 피처 도형의 경계 상자의 너비

  • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2

12.2.13.10. buffer

도형으로부터의 거리가 지정한 거리 이하인 모든 포인트들을 표현하는 도형을 반환합니다. 해당 도형의 공간 참조 시스템 상에서 거리를 계산합니다.

문법

buffer(geometry, distance, [segments=8], [cap=’round’], [join=’round’], [miter_limit=2])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • distance - 레이어 단위의 버퍼 거리

  • segments - 둥근 결합 스타일을 사용한 경우 사분원을 나타내는 데 사용할 선분의 개수입니다. 숫자가 클수록 더 많은 노드를 가진 매끈한 버퍼를 생성합니다.

  • cap - end cap style for buffer. Valid values are ‘round’, ‘flat’ or ‘square’

  • join - join style for buffer. Valid values are ‘round’, ‘bevel’ or ‘miter’.

  • miter_limit - miter distance limit, for use when the join style is set to ‘miter’

예제

  • buffer($geometry, 10.5) → 현재 피처 도형에 버퍼를 10.5단위만큼 적용한 폴리곤

../../../_images/buffer1.png

그림 12.5 Buffer (in yellow) of points, line and polygon

더 읽어볼 거리: 버퍼 알고리즘

12.2.13.11. buffer_by_m

버퍼 반경이 라인 꼭짓점의 M 값에 따라 고르게 변하도록 라인 도형을 따라 버퍼를 생성합니다.

문법

buffer_by_m(geometry, [segments=8])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 입력 도형. M 값을 가진 (멀티)라인 도형이어야만 합니다.

  • segments - 버퍼에서 사분면의 원호에 포함되는 선분 수

예제

  • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → 반경이 0.5에서 시작하여 라인스트링 도형을 따라 반경이 0.2가 되는 가변 너비 버퍼

../../../_images/variable_buffer_m.png

그림 12.6 Buffering line features using the m value on the vertices

더 읽어볼 거리: 변동 너비 버퍼 (M 값으로) 알고리즘

12.2.13.12. centroid

도형의 기하학적 중심을 반환합니다.

문법

centroid(geometry)

인자

  • geometry - 도형

예제

  • centroid($geometry) → 포인트 도형

더 읽어볼 거리: 중심 알고리즘

12.2.13.13. close_line

입력 라인스트링이 이미 닫힌 상태가 아닌 경우, 라인의 마지막 포인트에 첫 번째 포인트를 붙인 닫힌 라인스트링을 반환합니다. 도형이 라인스트링 또는 멀티라인스트링이 아닌 경우 NULL을 반환할 것입니다.

문법

close_line(geometry)

인자

  • geometry - 라인스트링 도형

예제

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → ‘LineString (0 0, 1 0, 1 1, 0 0)’

  • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → ‘LineString (0 0, 1 0, 1 1, 0 0)’

12.2.13.14. closest_point

geometry2와 가장 가까이 있는 geometry1의 포인트를 반환합니다.

문법

closest_point(geometry1, geometry2)

인자

  • geometry1 - 가장 가까운 점을 찾기 위한 기준 도형

  • geometry2 - 가장 가까운 점을 찾기 위한 대상 도형

예제

  • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ‘Point(73.0769 115.384)’

12.2.13.15. collect_geometries

도형 집합을 다중 부분 도형 객체로 수집합니다.

인자 변이형(variant) 목록

도형 부분을 함수에 대한 개별 인자로 지정합니다.

문법

collect_geometries(geometry1, geometry2, …)

인자

  • geometry - 도형

예제

  • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → ‘MultiPoint ((1 2),(3 4),(5 6))’

배열 변이형

도형 부분을 도형 부분의 배열로 지정합니다.

문법

collect_geometries(array)

인자

  • array - 도형 객체의 배열

예제

  • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → ‘MultiPoint ((1 2),(3 4),(5 6))’

더 읽어볼 거리: 도형 모으기 알고리즘

12.2.13.16. combine

두 도형의 조합을 반환합니다.

문법

combine(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → ‘MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))’

  • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → ‘LINESTRING(3 3, 4 4, 6 6, 2 1)’

12.2.13.17. contains

도형이 또다른 도형을 담고 있는지 검증합니다. geometry2의 포인트 가운데 geometry1 외부에 있는 포인트가 하나도 없고, geometry2 내부의 포인트 가운데 최소한 포인트 1개가 geometry1 내부에 있는 경우에만 참을 반환합니다.

문법

contains(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → 참

  • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 거짓

더 읽어볼 거리: overlay_contains

12.2.13.18. convex_hull

도형의 볼록 껍질(convex hull)을 반환합니다. 볼록 껍질이란 선택 집합에 있는 모든 도형을 감싸는 최소 볼록 도형을 말합니다.

문법

convex_hull(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → ‘POLYGON((3 3, 4 10, 4 4, 3 3))’

더 읽어볼 거리: 볼록 껍질 알고리즘

12.2.13.19. crosses

도형이 다른 도형과 공간교차(cross)하는지 검증합니다. 입력 도형들의 내부 포인트 전부가 아니라 일부가 일치할 경우 참을 반환합니다.

문법

crosses(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 거짓

더 읽어볼 거리: overlay_crosses

12.2.13.20. difference

geometry2와 교차하지 않는 geometry1의 부분을 표현하는 도형을 반환합니다.

문법

difference(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ‘LINESTRING(4 4, 5 5)’

더 읽어볼 거리: 차감하기(Difference) 알고리즘

12.2.13.21. disjoint

도형이 공간적으로 교차하지 않는지 여부를 테스트합니다. 도형들이 서로 어떠한 공간도 공유하지 않으면 참을 반환합니다.

문법

disjoint(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → 거짓

더 읽어볼 거리: overlay_disjoint

12.2.13.22. distance

두 도형 사이의 (공간 참조 시스템 기반) 최단 거리를 투영체 단위로 반환합니다.

문법

distance(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4

12.2.13.23. distance_to_vertex

도형을 따라 지정한 꼭짓점까지의 거리를 반환합니다.

문법

distance_to_vertex(geometry, vertex)

인자

  • geometry - 라인스트링 도형

  • vertex - 0부터 시작하는 꼭짓점 인덱스; 음의 값인 경우, 선택한 꼭짓점 인덱스는 꼭짓점 총 개수에서 절대값을 뺀 값이 될 것입니다

예제

  • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0

12.2.13.24. end_point

도형에서 마지막 노드를 반환합니다.

문법

end_point(geometry)

인자

  • geometry - 도형 객체

예제

  • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‘Point (0 2)’

더 읽어볼 거리: 특정 꼭짓점 추출하기 알고리즘

12.2.13.25. exif_geotag

Creates a point geometry from the exif geotags of an image file.

문법

exif_geotag(path)

인자

  • path - An image file path.

예제

  • geom_to_wkt(exif_geotag('/my/photo.jpg')) → ‘Point (2 4)’

12.2.13.26. extend

라인스트링 도형의 시작과 끝을 지정한 양만큼 연장합니다. 라인에 있는 첫 번째와 마지막 선분의 방향을 사용해서 라인을 연장합니다. 멀티라인스트링의 경우, 모든 부분을 연장합니다. 거리 단위는 해당 도형의 공간 참조 시스템의 단위입니다.

문법

extend(geometry, start_distance, end_distance)

인자

  • geometry - (멀티)라인스트링 도형

  • start_distance - 라인 시작점을 연장할 거리

  • end_distance - 라인 종단점을 연장할 거리

예제

  • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → ‘LineString (-1 0, 1 0, 1 3)’

  • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → ‘MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))’

더 읽어볼 거리: 라인 연장하기 알고리즘

12.2.13.27. exterior_ring

폴리곤 도형의 외곽 고리를 표현하는 라인스트링을 반환합니다. 도형이 폴리곤이 아닌 경우 NULL을 반환할 것입니다.

문법

exterior_ring(geometry)

인자

  • geometry - 폴리곤 도형

예제

  • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → ‘LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)’

12.2.13.28. extrude

입력 [멀티]곡선 또는 [멀티]라인스트링을 지정한 X 및 Y 좌표로 연장한 압출(extruded) 버전을 반환합니다.

문법

extrude(geometry, x, y)

인자

  • geometry - a curve or linestring geometry

  • x - x 확장, 숫자 값

  • y - y 확장, 숫자 값

예제

  • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → ‘Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))’

  • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → ‘MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))’

12.2.13.29. flip_coordinates

도형의 x와 y 좌표값을 뒤바꾼 복사본을 반환합니다. 실수로 위도와 경도 값이 바뀐 도형을 복구하는데 유용합니다.

문법

flip_coordinates(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkt(flip_coordinates(make_point(1, 2))) → ‘Point (2 1)’

더 읽어볼 거리: X좌표와 Y좌표 바꾸기 알고리즘

12.2.13.30. force_rhr

도형이 오른손 규칙을 따르도록 강제합니다. 폴리곤 경계 안의 영역이 경계의 오른쪽에 있다는 의미입니다. 자세히 말하자면, 외곽 고리는 시계 방향이며 내곽 고리는 반시계 방향입니다.

문법

force_rhr(geometry)

인자

  • geometry - 도형. 폴리곤이 아닌 도형은 그대로 반환됩니다.

예제

  • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → ‘Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))’

더 읽어볼 거리: 오른손 법칙 강제하기 알고리즘

12.2.13.31. geom_from_gml

도형의 GML 표현으로부터 생성된 도형을 반환합니다.

문법

geom_from_gml(gml)

인자

  • gml - 도형의 GML 표현 (문자열)

예제

  • geom_from_gml('<gml:LineString srsName="EPSG:4326"><gml:coordinates>4,4 5,5 6,6</gml:coordinates></gml:LineString>') → 라인 도형 객체

12.2.13.32. geom_from_wkb

WKB(Well-Known Binary) 표현으로부터 생성된 도형을 반환합니다.

문법

geom_from_wkb(binary)

인자

  • binary - 도형의 WKB(Well-Known Binary) 표현 (바이너리 BLOB(Binary Large Object))

예제

  • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → 포인트 도형 객체

12.2.13.33. geom_from_wkt

WKT(well-known text) 표현으로부터 생성된 도형을 반환합니다.

문법

geom_from_wkt(text)

인자

  • text - 도형의 WKT(well-known text) 표현

예제

  • geom_from_wkt( 'POINT(4 5)' ) → 도형 객체

12.2.13.34. geom_to_wkb

도형의 WKB(Well-Known Binary) 표현을 반환합니다

문법

geom_to_wkb(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkb( $geometry ) → 도형 객체를 담고 있는 바이너리 BLOB(Binary Large Object)

12.2.13.35. geom_to_wkt

SRID 메타데이터를 제외한 도형의 WKT(well-known text) 표현을 반환합니다.

문법

geom_to_wkt(geometry, [precision=8])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • precision - 숫자 정밀도

예제

  • geom_to_wkt( make_point(6, 50) ) → ‘POINT(6 50)’

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‘POINT(0 0.66666667)’

  • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → ‘POINT(0 0.67)’

12.2.13.36. $geometry

현재 객체의 도형을 반환합니다. 다른 함수들과 함께 공간 처리하하기 위해 사용할 수 있습니다.

문법

$geometry

예제

  • geom_to_wkt( $geometry ) → ‘POINT(6 50)’

12.2.13.37. geometry

객체의 도형을 반환합니다.

문법

geometry(feature)

인자

  • feature - 피처 객체

예제

  • `` geometry( $currentfeature )`` → the geometry of the current feature. Prefer using $geometry.

  • geom_to_wkt( geometry( get_feature_by_id( 'streets', 1 ) ) ) → the geometry in WKT of the feature with the id 1 on the layer “streets”, e.g. ‘POINT(6 50)’

  • intersects( $geometry, geometry( get_feature( 'streets', 'name', 'Main St.' ) ) ) → true if the current feature spatially intersects the ‘Main St.’ named feature in the “streets” layer

12.2.13.38. geometry_n

도형 집합에서 특정 도형을 반환하거나, 입력 도형이 집합이 아닌 경우 NULL을 반환합니다.

문법

geometry_n(geometry, index)

인자

  • geometry - 도형 집합

  • index - 집합의 첫 번째 도형이 1인, 반환할 도형 인덱스

예제

  • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → ‘Point (1 0)’

12.2.13.39. geometry_type

Returns a string value describing the type of a geometry (Point, Line or Polygon)

문법

geometry_type(geometry)

인자

  • geometry - 도형

예제

  • geometry_type( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → ‘Line’

  • geometry_type( geom_from_wkt( 'MULTILINESTRING((2 5, 3 6, 4 8), (1 1, 0 0))') ) → ‘Line’

  • geometry_type( geom_from_wkt( 'POINT(2 5)') ) → ‘Point’

  • geometry_type( geom_from_wkt( 'POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))') ) → ‘Polygon’

12.2.13.40. hausdorff_distance

두 도형 사이의 하우스도르프 거리(Hausdorff distance)를 반환합니다. 하우스도르프 거리란 기본적으로 두 도형이 얼마나 닮았는지 또는 닮지 않았는지를 나타내는 척도입니다. 거리가 짧을수록 도형들이 더 닮았다는 의미입니다.

이 함수는 선택적인 치밀화 분수(densify fraction) 인자와 함께 실행할 수 있습니다. 이 인자를 지정하지 않으면, 표준 하우스도르프 거리의 근사치를 사용합니다. 이 근사치는 활용도가 높은 사례들의 대다수에 대해 정확하거나 충분히 가까운 값입니다. 이에 대한 예는 다음과 같습니다:

  • 서로에 대해 대충 평행하며 대충 길이도 같은 라인스트링들 사이의 거리를 계산합니다. 이 사례는 매칭 선형 네트워크에서 찾아볼 수 있습니다.

  • 도형의 유사성을 검증합니다.

이 방법으로 제공되는 기본 근사값이 충분하지 않은 경우, 선택적인 치밀화 분수(densify fraction) 인자를 지정하십시오. 이 인자를 지정하면 개별 하우스도르프 거리를 계산하기 전에 선분 밀도를 늘리는 작업을 수행합니다. 이 파라미터는 각 선분을 치밀화하는 분수를 설정합니다. 각 선분은 동일한 길이의 하위 선분으로 분할되는데, 이때 전체 길이의 분수가 지정한 분수에 가장 가까워집니다. 치밀화 분수 파라미터의 값을 줄이면 반환된 거리가 도형에 대한 실제 하우스도르프 거리에 근접하게 됩니다.

문법

hausdorff_distance(geometry1, geometry2, [densify_fraction])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry1 - 도형

  • geometry2 - 도형

  • densify_fraction - 치밀화 분수의 양

예제

  • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623

  • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0

12.2.13.41. inclination

포인트 a에서 포인트 b로 가는 경사를 천정(zenith, 0)부터 천저(nadir, 180) 범위에서 측정해서 반환합니다.

문법

inclination(point_a, point_b)

인자

  • point_a - 포인트 도형

  • point_b - 포인트 도형

예제

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0

  • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0

12.2.13.42. interior_ring_n

폴리곤 도형에서 특정 내곽 고리를 반환하거나, 도형이 폴리곤이 아닌 경우 NULL을 반환합니다.

문법

interior_ring_n(geometry, index)

인자

  • geometry - 폴리곤 도형

  • index - 첫 번째 내곽 고리가 1인, 반환할 내곽 인덱스

예제

  • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → ‘LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))’

12.2.13.43. intersection

두 도형이 공유하는 부분을 표현하는 도형을 반환합니다.

문법

intersection(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ‘LINESTRING(3 3, 4 4)’

  • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → ‘POINT(3.5 3.5)’

더 읽어볼 거리: 교차(Intersection) 알고리즘

12.2.13.44. intersects

도형들이 서로 교차하는지 검증합니다. 도형들이 공간적으로 교차하는 경우 (공간의 어떤 부분이라도 공유하는 경우) 참을 반환하고 교차하지 않는 경우 거짓을 반환합니다.

문법

intersects(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → 거짓

더 읽어볼 거리: overlay_intersects

12.2.13.45. intersects_bbox

도형의 경계 상자가 다른 도형의 경계 상자와 교차하는지 검증합니다. 도형들의 경계 상자가 공간적으로 교차하는 경우 (공간의 어떤 부분이라도 공유하는 경우) 참을 반환하고 교차하지 않는 경우 거짓을 반환합니다.

문법

intersects_bbox(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → 거짓

12.2.13.46. is_closed

라인스트링이 닫힌 (시작점과 종단점이 일치하는) 경우 참을, 라인스트링이 닫히지 않은 경우 거짓을, 도형이 라인스트링이 아닌 경우 NULL을 반환합니다.

문법

is_closed(geometry)

인자

  • geometry - 라인스트링 도형

예제

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → 거짓

  • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → 참

12.2.13.47. is_empty

도형이 비어 있는(좌표가 없는) 경우 참을, 도형이 비어 있지 않은 경우 거짓을, 도형이 없는 경우 NULL을 반환합니다. is_empty_or_null 함수도 참조하세요.

문법

is_empty(geometry)

인자

  • geometry - 도형

예제

  • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → 거짓

  • is_empty(geom_from_wkt('LINESTRING EMPTY')) → 참

  • is_empty(geom_from_wkt('POINT(7 4)')) → 거짓

  • is_empty(geom_from_wkt('POINT EMPTY')) → 참

12.2.13.48. is_empty_or_null

도형이 NULL이거나 비어 있는(좌표가 없는) 경우 참을 반환하고, 그렇지 않은 경우 거짓을 반환합니다. 이 함수는 ‘$geometry IS NULL or is_empty($geometry)’ 표현식과 비슷합니다.

문법

is_empty_or_null(geometry)

인자

  • geometry - 도형

예제

  • is_empty_or_null(NULL) → 참

  • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → 거짓

  • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → 참

  • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → 거짓

  • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → 참

12.2.13.49. is_multipart

도형이 멀티 유형인 경우 참을 반환합니다.

문법

is_multipart(geometry)

인자

  • geometry - 도형

예제

  • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → 참

  • is_multipart(geom_from_wkt('POINT (0 0)')) → 거짓

12.2.13.50. is_valid

도형이 유효한 경우, 즉 도형이 2차원에서 OGC 규칙에 따라 잘 형성된 경우 참을 반환합니다.

문법

is_valid(geometry)

인자

  • geometry - 도형

예제

  • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → 참

  • is_valid(geom_from_wkt('LINESTRING(0 0)')) → 거짓

12.2.13.51. $length

라인스트링의 길이를 반환합니다. 만약 폴리곤의 둘레 길이가 필요하다면, $perimeter를 대신 사용하십시오. 이 함수는 현재 프로젝트의 타원체 설정과 거리 단위 설정을 따라 거리를 계산합니다. 예를 들어 프로젝트에 타원체를 설정했다면 타원체 기반으로 거리를 계산하고, 타원체를 설정하지 않았다면 평면 상에서 거리를 계산합니다.

문법

$length

예제

  • $length → 42.4711

12.2.13.52. length

문자열의 문자 개수 또는 라인스트링 도형의 길이를 반환합니다.

문자열 변이형

문자열에 있는 문자의 개수를 반환합니다.

문법

length(string)

인자

  • string - 길이를 셀 문자열

예제

  • length('hello') → 5

도형 변이형

라인 도형 객체의 길이를 계산합니다. 언제나 해당 도형의 공간 참조 시스템(SRS)에서 평면 측량해서 계산하므로, 반환한 길이의 단위가 SRS 용 단위와 일치할 것입니다. 이것이 $length 함수가 수행하는 계산과 다른 점인데, $length 함수는 프로젝트의 타원체 및 거리 단위 설정을 기반으로 타원체 상에서 계산을 수행할 것입니다.

문법

length(geometry)

인자

  • geometry - 라인 도형 객체

예제

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

Further reading: straight_distance_2d

12.2.13.53. length3D

Calculates the 3D length of a geometry line object. If the geometry is not a 3D line object, it returns its 2D length. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings.

문법

length3D(geometry)

인자

  • geometry - 라인 도형 객체

예제

  • length3D(geom_from_wkt('LINESTRINGZ(0 0 0, 3 0 4)')) → 5.0

12.2.13.54. line_interpolate_angle

라인스트링 도형을 따라 지정한 거리에서 도형과 평행한 각도를 반환합니다. 여기서 각도는 진북에서 시계 방향으로 측정한 도 단위입니다.

문법

line_interpolate_angle(geometry, distance)

인자

  • geometry - 라인스트링 도형

  • distance - 라인을 따라 각도를 보간할 거리

예제

  • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0

12.2.13.55. line_interpolate_point

라인스트링 도형을 따라 지정한 거리로 보간한 포인트를 반환합니다.

문법

line_interpolate_point(geometry, distance)

인자

  • geometry - 라인스트링 도형

  • distance - 라인을 따라 보간할 거리

예제

  • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5)) → ‘Point (5 0)’

더 읽어볼 거리: 라인에 포인트를 보간하기 알고리즘

12.2.13.56. line_locate_point

라인스트링을 따라 라인스트링이 지정한 포인트 도형에 가장 가까워지는 위치에 상응하는 거리를 반환합니다.

문법

line_locate_point(geometry, point)

인자

  • geometry - 라인스트링 도형

  • point - 라인스트링 상에서 가장 가까운 위치를 찾아야 할 포인트 도형

예제

  • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0

12.2.13.57. line_merge

입력 도형에서 연결된 모든 라인스트링을 단일 라인스트링으로 병합한 라인스트링 또는 멀티라인스트링 도형을 반환합니다. 이 함수는 입력 도형이 라인스트링/멀티라인스트링이 아닌 경우 NULL을 반환할 것입니다.

문법

line_merge(geometry)

인자

  • geometry - 라인스트링/멀티라인스트링 도형

예제

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → ‘LineString(0 0,1 1,2 2)’

  • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → ‘MultiLineString((0 0, 1 1),(11 1, 21 2)’

12.2.13.58. line_substring

지정한 시작점과 종단점 거리 사이에 떨어지는 라인 (또는 곡선) 도형의 부분을 반환합니다(라인의 시작에서부터 측정). Z 및 M 값은 기존 값에서 선형 보간됩니다.

문법

line_substring(geometry, start_distance, end_distance)

인자

  • geometry - 라인스트링 또는 곡선 도형

  • start_distance - 하위 스트링의 시작점까지의 거리

  • end_distance - 하위 스트링의 종단점까지의 거리

예제

  • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance:=6)) → ‘LineString (2 0,6 0)’

더 읽어볼 거리: 라인 부스트링 생성하기 알고리즘

12.2.13.59. m

포인트 도형의 M 값을 반환합니다.

문법

m(geometry)

인자

  • geometry - 포인트 도형

예제

  • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4

12.2.13.60. m_max

도형의 최대 (측정) M 값을 반환합니다.

문법

m_max(geometry)

인자

  • geometry - M 값을 담고 있는 도형

예제

  • m_max( make_point_m( 0,0,1 ) ) → 1

  • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 2

12.2.13.61. m_min

도형의 최소 (측정) M 값을 반환합니다.

문법

m_min(geometry)

인자

  • geometry - M 값을 담고 있는 도형

예제

  • m_min( make_point_m( 0,0,1 ) ) → 1

  • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1,-1,2 ), make_point_m( -2,-2,0 ) ) ) → 0

12.2.13.62. main_angle

Returns the angle of the long axis (clockwise, in degrees from North) of the oriented minimal bounding rectangle, which completely covers the geometry.

문법

main_angle(geometry)

인자

  • geometry - 도형

예제

  • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66

12.2.13.63. make_circle

원형 폴리곤을 생성합니다.

문법

make_circle(center, radius, [segments=36])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • center - 원의 중심 포인트

  • radius - 원의 반지름

  • segments - 폴리곤 선분화를 위한 선택적인 인자. 기본값은 36

예제

  • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → ‘Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))’

  • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → ‘PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))’

  • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → ‘PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))’

12.2.13.64. make_ellipse

타원형 폴리곤을 생성합니다.

문법

make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • center - 타원의 중심 포인트

  • semi_major_axis - 타원의 긴반지름

  • semi_minor_axis - 타원의 짧은반지름

  • azimuth - 타원의 방향

  • segments - 폴리곤 선분화를 위한 선택적인 인자. 기본값은 36

예제

  • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → ‘Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))’

  • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → ‘PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))’

  • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → ‘PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))’

12.2.13.65. make_line

일련의 포인트 도형들로부터 라인 도형을 생성합니다.

인자 변이형(variant) 목록

라인 꼭짓점을 함수에 대한 개별 인자로 지정합니다.

문법

make_line(point1, point2, …)

인자

  • point - 포인트 도형(또는 포인트 배열)

예제

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → ‘LineString (2 4, 3 5)’

  • geom_to_wkt(make_line(make_point(2,4),make_point(3,5),make_point(9,7))) → ‘LineString (2 4, 3 5, 9 7)’

배열 변이형

라인 꼭짓점을 포인트 배열로 지정합니다.

문법

make_line(array)

인자

  • array - 포인트의 배열

예제

  • geom_to_wkt(make_line(array(make_point(2,4),make_point(3,5),make_point(9,7)))) → ‘LineString (2 4, 3 5, 9 7)’

12.2.13.66. make_point

Creates a point geometry from an x and y (and optional z and m) value.

문법

make_point(x, y, [z], [m])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • x - 포인트의 X 좌표

  • y - 포인트의 Y 좌표

  • z - 포인트의 부가적인 Z 좌표

  • m - 포인트의 부가적인 M 값

예제

  • geom_to_wkt(make_point(2,4)) → ‘Point (2 4)’

  • geom_to_wkt(make_point(2,4,6)) → ‘PointZ (2 4 6)’

  • geom_to_wkt(make_point(2,4,6,8)) → ‘PointZM (2 4 6 8)’

12.2.13.67. make_point_m

X, Y 좌표와 M 값으로 포인트 도형을 생성합니다.

문법

make_point_m(x, y, m)

인자

  • x - 포인트의 X 좌표

  • y - 포인트의 Y 좌표

  • m - 포인트의 M 값

예제

  • geom_to_wkt(make_point_m(2,4,6)) → ‘PointM (2 4 6)’

12.2.13.68. make_polygon

외곽 고리와 부가적인 일련의 내곽 고리 도형으로부터 폴리곤 도형을 생성합니다.

문법

make_polygon(outerRing, [innerRing1], [innerRing2], …)

[] 괄호는 부가적인 인자를 표시합니다

인자

  • outerRing - 폴리곤의 외곽 고리가 될 닫힌 라인 도형

  • innerRing - 폴리곤의 내곽 고리가 될 선택적인 닫힌 라인 도형

예제

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → ‘Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))’

  • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'),geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → ‘Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))’

12.2.13.69. make_rectangle_3points

포인트 3개로부터 직사각형 폴리곤을 생성합니다.

문법

make_rectangle_3points(point1, point2, point3, [option=0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • point1 - 첫 번째 포인트

  • point2 - 두 번째 포인트

  • point3 - 세 번째 포인트

  • option - 직사각형을 구성하기 위한 부가적인 인자입니다. 이 값은 기본적으로 0입니다. 0(거리) 또는 1(투영)이 될 수 있습니다. 거리 옵션: 두 번째 거리는 두 번째와 세 번째 포인트 사이의 거리와 동일합니다. 투영 옵션: 두 번째 거리는 선분 또는 선분의 연장 위에 있는 세 번째 포인트의 수직 투영의 거리와 동일합니다.

예제

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 5), 0)) → ‘Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))’

  • geom_to_wkt(make_rectangle_3points(make_point(0, 0), make_point(0,5), make_point(5, 3), 1)) → ‘Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))’

12.2.13.70. make_regular_polygon

정다각형 폴리곤을 생성합니다.

문법

make_regular_polygon(center, radius, number_sides, [circle=0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • center - 정다각형 폴리곤의 중심

  • radius - 두 번째 포인트. 정다각형 폴리곤이 내접되는 경우 첫 번째가 됩니다. 정다각형 폴리곤이 외접되는 경우 첫 번째 변의 중간점이 됩니다.

  • number_sides - 정다각형 폴리곤의 변/경계선의 개수

  • circle - 정다각형 폴리곤을 구성하기 위한 선택적인 인자. 기본값은 0입니다. 0(내접) 또는 1(외접)이 될 수 있습니다.

예제

  • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → ‘Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))’

  • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → ‘Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))’

12.2.13.71. make_square

대각선으로부터 정사각형을 생성합니다.

문법

make_square(point1, point2)

인자

  • point1 - 대각선의 첫 번째 포인트

  • point2 - 대각선의 마지막 포인트

예제

  • geom_to_wkt(make_square( make_point(0,0), make_point(5,5))) → ‘Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))’

  • geom_to_wkt(make_square( make_point(5,0), make_point(5,5))) → ‘Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))’

12.2.13.72. make_triangle

삼각형 폴리곤을 생성합니다.

문법

make_triangle(point1, point2, point3)

인자

  • point1 - 삼각형의 첫 번째 포인트

  • point2 - 삼각형의 두 번째 포인트

  • point3 - 삼각형의 세 번째 포인트

예제

  • geom_to_wkt(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10))) → ‘Triangle ((0 0, 5 5, 0 10, 0 0))’

  • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → ‘LineString (0 0, 5 5, 0 10, 0 0)’

12.2.13.73. minimal_circle

도형의 최소 외함 원을 반환합니다. 최소 외함 원이란 도형 집합에 있는 모든 도형을 감싸는 최소 원을 말합니다.

문법

minimal_circle(geometry, [segments=36])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • segments - 폴리곤 선분화를 위한 선택적인 인자. 기본값은 36

예제

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → ‘Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))’

  • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → ‘Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))’

더 읽어볼 거리: 최소 외함 원 알고리즘

12.2.13.74. nodes_to_points

입력 도형에 있는 모든 노드로 이루어진 멀티포인트 도형을 반환합니다.

문법

nodes_to_points(geometry, [ignore_closing_nodes=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형 객체

  • ignore_closing_nodes - 라인 또는 폴리곤 고리를 닫는 중복 노드들을 포함할지 여부를 지정하는 부가적인 인자입니다. 기본값은 거짓으로, 산출 집합에 이 중복 노드들이 포함되는 걸 피하려면 참으로 설정하세요.

예제

  • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‘MultiPoint ((0 0),(1 1),(2 2))’

  • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → ‘MultiPoint ((-1 -1),(4 0),(4 2),(0 2))’

더 읽어볼 거리: 꼭짓점 추출하기 알고리즘

12.2.13.75. num_geometries

도형 집합에 있는 도형의 개수를 반환하거나, 입력 도형이 집합이 아닌 경우 NULL을 반환합니다.

문법

num_geometries(geometry)

인자

  • geometry - 도형 집합

예제

  • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4

12.2.13.76. num_interior_rings

폴리곤 또는 도형 집합에 있는 내곽 고리의 개수를 반환하거나, 또는 입력 도형이 폴리곤 또는 집합이 아닌 경우 NULL을 반환합니다.

문법

num_interior_rings(geometry)

인자

  • geometry - 입력 도형

예제

  • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 1

12.2.13.77. num_points

도형의 꼭짓점 개수를 반환합니다.

문법

num_points(geometry)

인자

  • geometry - 도형

예제

  • num_points($geometry) → 현재 피처 도형에 있는 꼭짓점의 개수

12.2.13.78. num_rings

폴리곤 또는 도형 집합에 있는 (외곽 고리를 포함하는) 고리의 개수를 반환하거나, 또는 입력 도형이 폴리곤 또는 집합이 아닌 경우 NULL을 반환합니다.

문법

num_rings(geometry)

인자

  • geometry - 입력 도형

예제

  • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2

12.2.13.79. offset_curve

라인스트링 도형을 한쪽으로 오프셋시켜 형성된 도형을 반환합니다. 거리 단위는 해당 도형의 공간 참조 시스템의 단위입니다.

문법

offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - (멀티)라인스트링 도형

  • distance - 오프셋 거리입니다. 양의 값이면 라인 좌측으로 버퍼를 적용하고, 음의 값이면 라인 우측으로 적용할 것입니다

  • segments - 둥근 결합 스타일을 사용한 경우 사분원을 나타내는 데 사용할 선분의 개수입니다. 숫자가 클수록 더 많은 노드를 가진 매끈한 라인을 생성합니다.

  • join - 모서리 부분의 결합 스타일. 1 = 둥글게, 2 = 마이터, 그리고 3 = 비스듬하게

  • miter_limit - 매우 뾰족한 모서리에 사용된 마이터 비율에 대한 제한 (마이터 결합만 사용하는 경우)

예제

  • offset_curve($geometry, 10.5) → 라인을 왼쪽으로 10.5 단위만큼 오프셋

  • offset_curve($geometry, -10.5) → 라인을 오른쪽으로 10.5 단위만큼 오프셋

  • offset_curve($geometry, 10.5, segments:=16, join:=1) → line offset to the left by 10.5 units, using more segments to result in a smoother curve

  • offset_curve($geometry, 10.5, join:=3) → line offset to the left by 10.5 units, using a beveled join

더 읽어볼 거리: 라인 오프셋시키기 알고리즘

12.2.13.80. order_parts

지정한 기준으로 멀티 도형의 부분들을 정렬합니다.

문법

order_parts(geometry, orderby, [ascending=true])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 멀티 유형 도형

  • orderby - 정렬 기준을 정의하는 표현식 문자열

  • ascending - 불(boolean), 오름차순의 경우 참, 내림차순의 경우 거짓

예제

  • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area($geometry)', False)) → ‘MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))’

  • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → ‘LineString(1 2, 3 2, 4 3)’

12.2.13.81. oriented_bbox

입력 도형의 지향된(oriented) 최소 경계 상자를 표현하는 도형을 반환합니다.

문법

oriented_bbox(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → ‘Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))’

더 읽어볼 거리: 기울어진 최소 경계 상자 알고리즘

12.2.13.82. overlaps

도형이 다른 도형과 중첩하는지 검증합니다. 도형들이 동일한 차원이며 공간을 공유하지만 서로를 완전히 담고 있지 않은 경우 참을 반환합니다.

문법

overlaps(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 거짓

12.2.13.83. overlay_contains

현재 피처가 공간적으로 대상 레이어의 피처를 적어도 하나 이상 담고 있는지 여부, 또는 현재 피처가 담고 있는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Contains” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Contains 함수의 설명을 읽어보세요.

문법

overlay_contains(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_contains('regions') → 현재 피처가 ‘region’ 을 공간적으로 담고 있는 경우 참을 반환합니다.

  • overlay_contains('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 ‘region’ 을 공간적으로 담고 있는 경우 참을 반환합니다.

  • overlay_contains('regions', name) → 현재 피처에 담겨 있는 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_contains('regions', name)) → 현재 피처에 담겨 있는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처에 담겨 있으며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처에 담겨 있는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: contains, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.84. overlay_crosses

현재 피처가 대상 레이어의 피처를 적어도 하나 이상 공간 교차하고 있는지 여부, 또는 현재 피처가 공간 교차하는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Crosses” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Crosses 함수의 설명을 읽어보세요.

문법

overlay_crosses(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_crosses('regions') → 현재 피처가 ‘region’ 을 공간 교차하는 경우 참을 반환합니다.

  • overlay_crosses('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 ‘region’ 을 공간 교차하는 경우 참을 반환합니다.

  • overlay_crosses('regions', name) → 현재 피처를 공간 교차하는 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_crosses('regions', name)) → 현재 피처를 공간 교차하는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처를 공간 교차하며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처를 공간 교차하는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: crosses, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.85. overlay_disjoint

현재 피처가 공간적으로 대상 레이어의 모든 피처와 공간적으로 분리되어 있는지 여부, 또는 현재 피처와 분리되어 있는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Disjoint” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Disjoint 함수의 설명을 읽어보세요.

문법

overlay_disjoint(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_disjoint('regions') → 현재 피처가 모든 ‘region’ 과 공간적으로 분리되어 있는 경우 참을 반환합니다.

  • overlay_disjoint('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 모든 ‘region’ 과 공간적으로 분리되어 있는 경우 참을 반환합니다.

  • overlay_disjoint('regions', name) → 현재 피처와 공간적으로 분리되어 있는 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_disjoint('regions', name)) → 현재 피처와 공간적으로 분리되어 있는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처와 공간적으로 분리되어 있으며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처와 공간적으로 분리되어 있는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: disjoint, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.86. overlay_equals

현재 피처가 대상 레이어의 피처와 적어도 하나 이상 공간적으로 동등한지 여부, 또는 현재 피처와 공간적으로 동등한 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Equals” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Equals 함수의 설명을 읽어보세요.

문법

overlay_equals(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_equals('regions') → 현재 피처가 ‘region’ 과 공간적으로 동등한 경우 참을 반환합니다.

  • overlay_equals('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 ‘region’ 과 공간적으로 동등한 경우 참을 반환합니다.

  • overlay_equals('regions', name) → 현재 피처와 공간적으로 동등한 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_equals('regions', name)) → 현재 피처와 공간적으로 동등한 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처와 공간적으로 동등하며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처와 공간적으로 동등한 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: 배열 조작, 위치로 선택하기 알고리즘

12.2.13.87. overlay_intersects

현재 피처가 대상 레이어의 피처를 적어도 하나 이상 공간적으로 교차하고 있는지 여부, 또는 현재 피처가 교차하는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Intersects” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Intersects 함수의 설명을 읽어보세요.

문법

overlay_intersects(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_intersects('regions') → 현재 피처가 ‘region’ 을 공간적으로 교차하는 경우 참을 반환합니다.

  • overlay_intersects('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 ‘region’ 을 공간적으로 교차하는 경우 참을 반환합니다.

  • overlay_intersects('regions', name) → 현재 피처를 교차하는 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_intersects('regions', name)) → 현재 피처를 교차하는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처를 교차하며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처를 교차하는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: intersects, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.88. overlay_nearest

현재 피처에서 지정한 거리 안에 대상 레이어의 피처(들)이 있는지 여부, 또는 현재 피처에서 지정한 거리 안에 있는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

주의: 대용량 레이어의 경우 이 함수는 메모리를 많이 잡아먹고 느릴 수도 있습니다.

문법

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 대상 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 대상 레이어에 있는 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 가장 가까이 있는 피처만 반환할 것입니다. -1로 설정하면, 매칭하는 모든 피처를 반환합니다.

  • max_distance - 매칭하는 피처를 검색할 거리를 제한하는 선택적인 파라미터입니다. 설정하지 않은 경우, 대상 레이어에 있는 모든 피처를 사용할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_nearest('airports') → “airports” 레이어에 매칭하는 피처가 최소한 하나 이상 있는 경우 참을 반환합니다.

  • overlay_nearest('airports', max_distance:= 5000) → 현재 피처에서 5,000 맵 단위 거리 안에 ‘airport’ 레이어의 피처가 있는 경우 참을 반환합니다.

  • overlay_nearest('airports', name) → 현재 피처에 가장 가까이 있는 ‘airport’ 레이어의 피처 이름을 배열로 반환합니다.

  • array_to_string(overlay_nearest('airports', name)) → 현재 피처에 가장 가까이 있는 ‘airport’ 레이어의 피처 이름을 문자열로 반환합니다.

  • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → 현재 피처의 5,000 맵 단위 거리 안에 있는 ‘airport’ 레이어의 피처 가운데 가장 가까이 있는 피처의 이름을 배열로 반환합니다.

  • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → 현재 피처에 가장 가까이 있는 최대 3개까지의 민간 공항을 거리 순으로 정렬한 공항 이름의 배열을 반환합니다.

  • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → 현재 피처에서 5,000 맵 단위 거리 안에 있는 모든 ‘airport’ 레이어의 피처를 거리 순으로 정렬한 공항 이름의 배열을 반환합니다.

더 읽어볼 거리: 배열 조작, 최근접으로 속성 결합하기 알고리즘

12.2.13.89. overlay_touches

현재 피처가 대상 레이어의 피처를 적어도 하나 이상 공간적으로 접하고 있는지 여부, 또는 현재 피처가 접하고 있는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Touches” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Touches 함수의 설명을 읽어보세요.

문법

overlay_touches(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_touches('regions') → 현재 피처가 ‘region’ 을 공간적으로 접하는 경우 참을 반환합니다.

  • overlay_touches('regions', filter:= population > 10000) → 현재 피처가 인구 10,000명을 초과하는 ‘region’ 을 공간적으로 접하는 경우 참을 반환합니다.

  • overlay_touches('regions', name) → 현재 피처를 접하고 있는 ‘region’ 의 이름들의 배열

  • string_to_array(overlay_touches('regions', name)) → 현재 피처를 접하고 있는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처를 접하며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처를 접하는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: touches, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.90. overlay_within

현재 피처가 공간적으로 적어도 하나 이상의 대상 레이어의 피처 내부에 있는지 여부, 또는 현재 피처를 담고 있는 대상 레이어의 피처에 대한 표현식 기반 결과물의 배열을 반환합니다.

기저 GEOS “Within” 서술부에 대해 자세히 알고 싶다면, PostGIS ST_Within 함수의 설명을 읽어보세요.

문법

overlay_within(layer, [expression], [filter], [limit], [cache=false])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 중첩을 검증할 레이어

  • expression - 대상 레이어에서 나온 피처에 대해 평가할 부가적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 이 함수는 최소 1개의 매칭이 있는지를 나타내는 불(boolean)을 반환할 것입니다.

  • filter - 검증할 대상 피처를 필터링할 선택적인 표현식입니다. 이 표현식을 설정하지 않은 경우, 모든 피처를 검증할 것입니다.

  • limit - 매칭하는 피처의 개수를 제한할 선택적인 정수입니다. 이 파라미터를 설정하지 않은 경우, 매칭하는 모든 피처를 반환할 것입니다.

  • cache - 이 파라미터를 참으로 설정하면 로컬 공간 인덱스를 작성합니다. (대부분의 경우 바람직하지 않습니다. 사용자가 현저하게 느린 데이터 제공자와 작업하는 게 아니라면 말이죠.)

예제

  • overlay_within('regions') → 현재 피처가 공간적으로 ‘region’ 의 피처 내부에 있는 경우 참을 반환합니다.

  • overlay_within('regions', filter:= population > 10000) → 현재 피처가 공간적으로 인구 10,000명을 초과하는 ‘region’ 내부에 있는 경우 참을 반환합니다.

  • overlay_within('regions', name) → 현재 피처를 담고 있는 ‘region’ 의 이름들의 배열

  • array_to_string(overlay_within('regions', name)) → 현재 피처를 담고 있는 ‘region’ 의 이름들을 쉼표로 구분한 목록인 문자열

  • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → 현재 피처를 담고 있으며 인구 10,000명을 초과하는 ‘region’ 의 이름들을 정렬한 배열

  • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → 현재 피처를 담고 있는 최대 2개까지의 ‘region’ 에 대한, (WKT 서식) 도형들의 배열

더 읽어볼 거리: within, 배열 조작, 위치로 선택하기 알고리즘

12.2.13.91. $perimeter

현재 객체의 둘레 길이를 반환합니다. 이 함수로 계산된 둘레는 현재 프로젝트의 타원체 설정과 거리 단위 설정을 따릅니다. 예를 들어 타원체가 프로젝트에 설정되면 계산된 둘레는 타원체 기반이 되고 타원체가 설정되지 않으면 계산된 둘레는 평면상의 측정이됩니다.

문법

$perimeter

예제

  • $perimeter → 42

12.2.13.92. perimeter

도형 폴리곤 객체의 둘레를 계산합니다. 언제나 해당 도형의 공간 참조 시스템(SRS) 안에서 평면 측량해서 계산하므로, 반환한 둘레의 단위가 SRS 용 단위와 일치할 것입니다. 이것이 $perimeter 함수가 수행하는 계산과 다른 점인데, $perimeter 함수는 프로젝트의 타원체 및 거리 단위 설정을 기반으로 타원체 상에서 계산을 수행할 것입니다.

문법

perimeter(geometry)

인자

  • geometry - 폴리곤 도형 객체

예제

  • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0

12.2.13.93. point_n

도형에서 지정한 노드를 반환합니다.

문법

point_n(geometry, index)

인자

  • geometry - 도형 객체

  • index - 1부터 시작하는 반환할 노드 인덱스; 음의 값인 경우, 선택한 꼭짓점 인덱스는 꼭짓점 총 개수에서 절대값을 뺀 값이 될 것입니다

예제

  • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → ‘Point (4 0)’

더 읽어볼 거리: 특정 꼭짓점 추출하기 알고리즘

12.2.13.94. point_on_surface

도형의 표면 상에 있다고 보장된 포인트를 반환합니다.

문법

point_on_surface(geometry)

인자

  • geometry - 도형

예제

  • point_on_surface($geometry) → 포인트 도형

더 읽어볼 거리: 표면에 포인트 생성하기 알고리즘

12.2.13.95. pole_of_inaccessibility

표면에 대한 도달불능극 근사치를 계산합니다. 도달불능극이란 표면의 경계로부터 가장 멀리 떨어져 있는 내부 포인트를 말합니다. 이 함수는 ‘polylabel’ 알고리즘(Vladimir Agafonkin, 2016)을 사용하는데, 이 알고리즘은 지정한 허용 오차 안에서 진짜 도달불능극을 확실히 찾을 수 있는 반복 접근법입니다. 허용 오차가 정밀할수록 더 많이 반복하기 때문에 계산 시간이 더 걸릴 것입니다.

문법

pole_of_inaccessibility(geometry, tolerance)

인자

  • geometry - 도형

  • tolerance - 반환된 포인트와 진극 위치 사이의 최장 거리

예제

  • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1))' → ‘Point(1.546875 2.546875)’

더 읽어볼 거리: 도달불능극 알고리즘

12.2.13.96. project

라디안 단위 거리, 방향(방위각), 그리고 표고를 이용해서 시작점에서부터 투영된 포인트를 반환합니다.

문법

project(point, distance, azimuth, [elevation])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • point - 시작점

  • distance - 투영할 거리

  • azimuth - 0이 진북에 해당하는 시계 방향 라디안 단위 방위각

  • elevation - 라디안 단위의 경사(inclination) 각도

예제

  • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → ‘Point(-2, 2)’

더 읽어볼 거리: 포인트 투영하기 (데카르트) 알고리즘

12.2.13.97. relate

두 도형 간의 관계의 DE-9IM(Dimensional Extended 9 Intersection Model) 표현을 검증합니다.

관계 변이형

두 도형 간의 관계의 DE-9IM(Dimensional Extended 9 Intersection Model) 표현을 반환합니다.

문법

relate(geometry, geometry)

인자

  • geometry - 도형

  • geometry - 도형

예제

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → ‘FF1F00102’

패턴 매칭 변이형

두 도형 간의 DE-9IM 관계가 지정된 패턴과 일치하는지 여부를 테스트합니다.

문법

relate(geometry, geometry, pattern)

인자

  • geometry - 도형

  • geometry - 도형

  • pattern - 매칭시킬 DE-9IM 패턴

예제

  • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → 참

12.2.13.98. reverse

라인스트링의 꼭짓점 순서를 역전시켜 라인스트링의 방향을 반전시킵니다.

문법

reverse(geometry)

인자

  • geometry - 도형

예제

  • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‘LINESTRING(2 2, 1 1, 0 0)’

더 읽어볼 거리: 라인 방향 반전시키기 알고리즘

12.2.13.99. rotate

도형의 기울인(rotated) 버전을 반환합니다. 해당 도형의 공간 참조 시스템에서 계산합니다.

문법

rotate(geometry, rotation, [center])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • rotation - 시계 방향 도 단위 회전

  • center - 회전 중심 포인트. 이를 지정하지 않으면, 도형 경계 상자의 중심을 사용합니다.

예제

  • rotate($geometry, 45, make_point(4, 5)) → 도형을 (4, 5) 포인트 기준으로 시계 방향 45도 회전시킵니다.

  • rotate($geometry, 45) → 도형을 도형 경계 상자의 중심을 기준으로 시계 방향 45도 회전시킵니다.

../../../_images/rotate.gif

그림 12.7 Rotating features

12.2.13.100. segments_to_lines

입력 도형에 있는 모든 선분을 표현하는 라인으로 이루어진 멀티라인 도형을 반환합니다.

문법

segments_to_lines(geometry)

인자

  • geometry - 도형 객체

예제

  • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‘MultiLineString ((0 0, 1 1),(1 1, 2 2))’

더 읽어볼 거리: 라인 조각내기 알고리즘

12.2.13.101. shortest_line

도형 2에 도형 1을 결합하는 최단 라인을 반환합니다. 산출된 라인은 도형 1에서 시작돼 도형 2에서 끝납니다.

문법

shortest_line(geometry1, geometry2)

인자

  • geometry1 - 최단 라인이 시작될 도형

  • geometry2 - 최단 라인이 끝날 도형

예제

  • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ‘LineString(73.0769 115.384, 100 100)’

12.2.13.102. simplify

거리 기반 한계값을 (예를 들면 더글러스-패커 알고리즘을) 사용해서 노드를 제거해 도형을 단순화합니다. 이 알고리즘은 도형 내부의 큰 편차를 보전하고 거의 직선에 가까운 선분의 꼭짓점 개수를 줄입니다.

문법

simplify(geometry, tolerance)

인자

  • geometry - 도형

  • tolerance - 제거할 포인트에 대한 직선 선분의 최대 편차

예제

  • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → ‘LineString(0 0, 10 0)’

더 읽어볼 거리: 단순화 알고리즘

12.2.13.103. simplify_vw

면적 기반 한계값을 (예를 들면 비쉬왈링감-와이어트 알고리즘을) 사용해서 노드를 제거해 도형을 단순화합니다. 이 알고리즘은 도형에서 작은 면을 - 예를 들어 좁은 돌기(narrow spike) 또는 거의 직선에 가까운 선분을 - 생성하는 꼭짓점을 제거합니다.

문법

simplify_vw(geometry, tolerance)

인자

  • geometry - 도형

  • tolerance - 노드가 제거될 노드에 의해 생성된 최대 면적 측정

예제

  • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → ‘LineString(0 0, 10 0)’

더 읽어볼 거리: 단순화 알고리즘

12.2.13.104. single_sided_buffer

라인스트링 도형의 한쪽에만 버퍼를 적용해서 형성된 도형을 반환합니다. 거리 단위는 해당 도형의 공간 참조 시스템의 단위입니다.

문법

single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - (멀티)라인스트링 도형

  • distance - 버퍼 거리. 양의 값이면 라인 좌측으로 버퍼를 적용하고, 음의 값이면 라인 우측으로 적용할 것입니다.

  • segments - 둥근 결합 스타일을 사용한 경우 사분원을 나타내는 데 사용할 선분의 개수입니다. 숫자가 클수록 더 많은 노드를 가진 매끈한 버퍼를 생성합니다.

  • join - 모서리 부분의 결합 스타일. 1 = 둥글게, 2 = 마이터, 그리고 3 = 비스듬하게

  • miter_limit - 매우 뾰족한 모서리에 사용된 마이터 비율에 대한 제한 (마이터 결합만 사용하는 경우)

예제

  • single_sided_buffer($geometry, 10.5) → 라인 왼쪽으로 10.5 단위만큼 버퍼 생성

  • single_sided_buffer($geometry, -10.5) → 라인 오른쪽으로 10.5 단위만큼 버퍼 생성

  • single_sided_buffer($geometry, 10.5, segments:=16, join:=1) → line buffered to the left by 10.5 units, using more segments to result in a smoother buffer

  • single_sided_buffer($geometry, 10.5, join:=3) → line buffered to the left by 10.5 units, using a beveled join

더 읽어볼 거리: 한쪽 버퍼 생성하기 알고리즘

12.2.13.105. sinuosity

Returns the sinuosity of a curve, which is the ratio of the curve length to the straight (2D) distance between its endpoints.

문법

sinuosity(geometry)

인자

  • geometry - Input curve (circularstring, linestring)

예제

  • round(sinuosity(geom_from_wkt('LINESTRING(2 0, 2 2, 3 2, 3 3)')), 3) → 1.265

  • sinuosity(geom_from_wkt('LINESTRING( 3 1, 5 1)')) → 1.0

12.2.13.106. smooth

도형의 모서리를 둥글게 다듬는 노드를 추가하여 도형을 매끄럽게 만듭니다. 입력 도형에 Z 또는 M값이 포함된 경우 이 값들도 평활화하고, 산출 도형은 입력 도형과 동일한 차원을 유지할 것입니다.

문법

smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 도형

  • iterations - 반복해서 적용할 평활화 횟수입니다. 숫자가 클수록 더 매끄럽지만 더 복잡한 도형을 생성합니다.

  • offset - 평활화된 도형이 얼마나 엄격하게 원본 도형을 따를지 제어하는 0에서 0.5 사이의 값입니다. 값이 적을수록 더 평활화되고, 값이 클수록 덜 평활화됩니다.

  • min_length - 평활화 작업에 적용할 최소 선분 길이입니다. 도형의 짧은 선분에 추가 노드를 과도하게 배치하는 일을 피하려면 이 파라미터를 사용하면 됩니다.

  • max_angle - 노드에서 평활화 작업에 적용할 최대 각도(0-180)입니다. 최대 각도를 줄이면 도형에서 일부러 뾰족하게 만든 모서리를 보전할 수 있습니다. 예를 들어, 값을 80도로 지정하면 도형에 있는 직각을 유지할 것입니다.

예제

  • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1,max_angle:=180)) → ‘LineString (0 0, 4 0, 5 1, 5 5)’

더 읽어볼 거리: 평탄화 알고리즘

12.2.13.107. start_point

도형에서 첫 번째 노드를 반환합니다.

문법

start_point(geometry)

인자

  • geometry - 도형 객체

예제

  • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‘Point (4 0)’

더 읽어볼 거리: 특정 꼭짓점 추출하기 알고리즘

12.2.13.108. straight_distance_2d

Returns the direct/euclidean distance between the first and last vertex of a geometry. The geometry must be a curve (circularstring, linestring).

문법

straight_distance_2d(geometry)

인자

  • geometry - The geometry.

예제

  • straight_distance_2d(geom_from_wkt('LINESTRING(1 0, 1 1)')) → 1

  • round(straight_distance_2d(geom_from_wkt('LINESTRING(1 4, 3 5, 5 0)')), 3) → 5.657

Further reading: length

12.2.13.109. sym_difference

두 도형이 교차하지 않는 부분들을 표현하는 도형을 반환합니다.

문법

sym_difference(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → ‘LINESTRING(5 5, 8 8)’

더 읽어볼 거리: 대칭 차감 알고리즘

12.2.13.110. tapered_buffer

라인 도형을 따라 버퍼의 지름이 라인의 길이에 걸쳐 균등하게 달라지는 버퍼를 생성합니다.

문법

tapered_buffer(geometry, start_width, end_width, [segments=8])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • geometry - 입력 도형. 반드시 (멀티)라인 도형이어야만 합니다.

  • start_width - 라인 시작점에서의 버퍼 너비

  • end_width - 라인 종단점에서의 버퍼 너비

  • segments - 버퍼에서 사분면의 원호에 포함되는 선분 수

예제

  • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → 반경이 1에서 시작하여 라인스트링 도형을 따라 반경이 2가 되는 테이퍼형(tapered) 버퍼

../../../_images/tapered_buffer.png

그림 12.8 Tapered buffer on line features

더 읽어볼 거리: 줄어드는 버퍼 생성하기 알고리즘

12.2.13.111. touches

도형이 다른 도형과 접하는지 검증합니다. 도형들이 최소한 포인트 1개를 공유하지만 각 도형의 내부가 교차하지 않는 경우 참을 반환합니다.

문법

touches(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → 참

  • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → 거짓

더 읽어볼 거리: overlay_touches

12.2.13.112. transform

원본 좌표계에서 대상 좌표계로 변환한 도형을 반환합니다.

문법

transform(geometry, source_auth_id, dest_auth_id)

인자

  • geometry - 도형

  • source_auth_id - 원본 인증 좌표계 ID

  • dest_auth_id - 대상 인증 좌표계 ID

예제

  • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → ‘POINT(0 51)’

더 읽어볼 거리: 레이어 재투영하기 알고리즘

12.2.13.113. translate

도형의 변환(translated) 버전을 반환합니다. 해당 도형의 공간 참조 시스템 상에서 계산합니다.

문법

translate(geometry, dx, dy)

인자

  • geometry - 도형

  • dx - Δx

  • dy - Δy

예제

  • translate($geometry, 5, 10) → 원래 도형과 동일한 유형의 도형

../../../_images/translate_geometry.png

그림 12.9 Translating features

더 읽어볼 거리: 이동시키기(Translate) 알고리즘

12.2.13.114. union

도형들의 모든 포인트를 통합한 집합을 표현하는 도형을 반환합니다.

문법

union(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → ‘MULTIPOINT(4 4, 5 5)’

12.2.13.115. wedge_buffer

포인트 도형에서 나온 쐐기 모양의 버퍼를 반환합니다.

문법

wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • center - 버퍼의 중심 포인트(원점). 포인트 도형이어야만 합니다.

  • azimuth - 쐐기의 중선에서 포인트까지의 (도 단위) 각도

  • width - 버퍼의 (도 단위) 너비. 쐐기는 방위각 방향의 양쪽으로 각도 너비의 반씩 확장될 것입니다.

  • outer_radius - 버퍼 외부 반경

  • inner_radius - 선택적인 버퍼 내부 반경

예제

  • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'),azimuth:=90,width:=180,outer_radius:=1) → 포인트 (1,2)를 중심으로 동쪽을 향한 너비 180도, 외부 반경 1인 쐐기 모양 버퍼

더 읽어볼 거리: 쐐기 버퍼 생성하기 알고리즘

12.2.13.116. within

도형이 다른 도형 내부에 있는지 검증합니다. 도형 1이 도형 2 내부에 완전히 들어가 있는 경우 참을 반환합니다.

문법

within(geometry1, geometry2)

인자

  • geometry1 - 도형

  • geometry2 - 도형

예제

  • within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → 참

  • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → 거짓

더 읽어볼 거리: overlay_within

12.2.13.117. $x

현재 포인트 피처의 X 좌표를 반환합니다. 피처가 다중 부분 피처인 경우, 첫 번째 포인트의 X 좌표를 반환할 것입니다.

문법

$x

예제

  • $x → 42

12.2.13.118. x

포인트 도형의 X 좌표를, 또는 포인트가 아닌 도형의 경우 중심점(centroid)의 X 좌표를 반환합니다.

문법

x(geometry)

인자

  • geometry - 도형

예제

  • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2

  • x( $geometry ) → 현재 객체 중심점의 X 좌표

12.2.13.119. $x_at

현재 객체 도형의 X 좌표를 추출합니다.

문법

$x_at(i)

인자

  • i - 라인의 포인트의 인덱스 (0부터 인덱스 시작; 음의 값은 -1부터 시작하며 마지막 인덱스부터 적용)

예제

  • $x_at(1) → 5

12.2.13.120. x_max

도형의 최대 X 좌표를 반환합니다. 해당 도형의 공간 참조 시스템 상에서 좌표를 계산합니다.

문법

x_max(geometry)

인자

  • geometry - 도형

예제

  • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4

12.2.13.121. x_min

도형의 최소 X 좌표를 반환합니다. 해당 도형의 공간 참조 시스템 상에서 좌표를 계산합니다.

문법

x_min(geometry)

인자

  • geometry - 도형

예제

  • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2

12.2.13.122. $y

현재 포인트 피처의 Y 좌표를 반환합니다. 피처가 다중 부분 피처인 경우, 첫 번째 포인트의 Y 좌표를 반환할 것입니다.

문법

$y

예제

  • $y → 42

12.2.13.123. y

포인트 도형의 Y 좌표를, 또는 포인트가 아닌 도형의 경우 중심점(centroid)의 Y 좌표를 반환합니다.

문법

y(geometry)

인자

  • geometry - 도형

예제

  • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5

  • y( $geometry ) → 현재 객체 중심점의 Y 좌표

12.2.13.124. $y_at

현재 객체 도형의 Y 좌표를 추출합니다.

문법

$y_at(i)

인자

  • i - 라인의 포인트의 인덱스 (0부터 인덱스 시작; 음의 값은 -1부터 시작하며 마지막 인덱스부터 적용)

예제

  • $y_at(1) → 2

12.2.13.125. y_max

도형의 최대 Y 좌표를 반환합니다. 해당 도형의 공간 참조 시스템 상에서 좌표를 계산합니다.

문법

y_max(geometry)

인자

  • geometry - 도형

예제

  • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8

12.2.13.126. y_min

도형의 최소 Y 좌표를 반환합니다. 해당 도형의 공간 참조 시스템 상에서 좌표를 계산합니다.

문법

y_min(geometry)

인자

  • geometry - 도형

예제

  • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5

12.2.13.127. $z

Returns the z value of the current point feature if it is 3D. If the feature is a multipoint feature, then the z value of the first point will be returned.

문법

$z

예제

  • $z → 123

12.2.13.128. z

포인트 도형의 Z 좌표를 반환하거나, 도형에 Z 값이 없는 경우 NULL을 반환합니다.

문법

z(geometry)

인자

  • geometry - 포인트 도형

예제

  • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7

12.2.13.129. z_max

도형의 최대 Z 좌표를 반환하거나, 도형에 Z 값이 없는 경우 NULL을 반환합니다.

문법

z_max(geometry)

인자

  • geometry - Z 좌표를 가진 도형

예제

  • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3

  • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0

  • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2

  • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.13.130. z_min

도형의 최소 Z 좌표를 반환하거나, 도형에 Z 값이 없는 경우 NULL을 반환합니다.

문법

z_min(geometry)

인자

  • geometry - Z 좌표를 가진 도형

예제

  • z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1

  • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1

  • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2

  • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1

  • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL

12.2.14. 조판 함수

이 그룹은 인쇄 조판기 항목 속성을 처리하는 함수를 담고 있습니다.

12.2.14.1. item_variables

해당 인쇄 조판기 내부에 있는 조판기 항목에서 나온 변수들의 맵을 반환합니다.

문법

item_variables(id)

인자

  • id - 조판 항목 ID

예제

  • map_get( item_variables('Map 0'), 'map_scale') → 현재 인쇄 조판기에 있는 ‘Map 0’ 항목의 축척

더 읽어볼 거리: 기본 변수 목록

12.2.14.2. map_credits

Returns a list of credit (usage rights) strings for the layers shown in a layout map item.

문법

map_credits(id, [include_layer_names=false], [layer_name_separator=’: ‘])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • id - map item ID

  • include_layer_names - Set to true to include layer names before their credit strings

  • layer_name_separator - String to insert between layer names and their credit strings, if include_layer_names is true

예제

  • array_to_string( map_credits( 'Main Map' ) ) → comma separated list of layer credits for layers shown in the ‘Main Map’ layout item, e.g ‘CC-BY-NC, CC-BY-SA’

  • array_to_string( map_credits( 'Main Map', include_layer_names := true, layer_name_separator := ': ' ) ) → comma separated list of layer names and their credits for layers shown in the ‘Main Map’ layout item, e.g. ‘Railway lines: CC-BY-NC, Basemap: CC-BY-SA’

This function requires the Access metadata properties of the layers to have been filled.

12.2.15. 맵 레이어

이 그룹은 현재 프로젝트에서 사용할 수 있는 레이어 목록을 담고 있습니다. 이 함수 그룹을 사용하면 여러 레이어를 참조하는, 예를 들면 집계, 속성 또는 공간 쿼리를 수행하는 표현식을 쉽게 작성할 수 있습니다.

또 레이어를 처리하기 위한 몇몇 편리한 함수들도 제공합니다.

12.2.15.1. decode_uri

레이어를 가져와서 기저 데이터 제공자의 URI를 디코딩합니다. 데이터 제공자 유형에 따라 어떤 데이터를 사용할 수 있는지가 달라집니다.

문법

decode_uri(layer, [part])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - URI를 디코딩해야 할 레이어입니다.

  • part - 반환할 URI 부분. 지정하지 않으면 모든 URI 부분을 가진 맵을 반환할 것입니다.

예제

  • decode_uri(@layer) → {‘layerId’: ‘0’, ‘layerName’: ‘’, ‘path’: ‘/home/qgis/shapefile.shp’}

  • decode_uri(@layer) → {‘layerId’: NULL, ‘layerName’: ‘layer’, ‘path’: ‘/home/qgis/geopackage.gpkg’}

  • decode_uri(@layer, 'path') → ‘C:\my_data\qgis\shape.shp’

12.2.15.2. layer_property

일치하는 레이어 속성 또는 메타데이터 값을 반환합니다.

문법

layer_property(layer, property)

인자

  • layer - 레이어명 또는 레이어 ID 가운데 하나를 나타내는 문자열

  • property - 반환할 속성에 대응하는 문자열입니다. 사용할 수 있는 옵션은 다음과 같습니다:

    • name: 레이어명

    • id: 레이어 ID

    • title: 메타데이터 제목 문자열

    • abstract: 메타데이터 요약 문자열

    • keywords: 메타데이터 키워드

    • data_url: 메타데이터 URL

    • attribution: 메타데이터 권한 문자열

    • attribution_url: 메타데이터 권한 URL

    • source: 레이어 소스

    • min_scale: 레이어 가시화 최저 축척

    • max_scale: 레이어 가시화 최고 축척

    • is_editable: 레이어 편집 모드가 켜져 있는지 여부

    • crs: 레이어 좌표계

    • crs_definition: 레이어 좌표계 전체 정의

    • crs_description: 레이어 좌표계 설명

    • extent: 레이어 범위 (도형 객체로서)

    • distance_units: 레이어 거리 단위

    • type: 레이어 유형, 예: 벡터 또는 래스터

    • storage_type: 저장소 포맷 (벡터 레이어 전용)

    • geometry_type: 도형 유형, 예: 포인트 (벡터 레이어 전용)

    • feature_count: 레이어에 있는 피처의 대략적인 개수 (벡터 레이어 전용)

    • path: 레이어 데이터소스를 가리키는 파일 경로. 파일 기반 레이어에만 사용할 수 있습니다.

예제

  • layer_property('streets','title') → ‘Basemap Streets’

  • layer_property('airports','feature_count') → 120

  • layer_property('landsat','crs') → ‘EPSG:4326’

Further reading: vector, raster and mesh layer properties

12.2.16. 맵 함수

이 그룹은 (딕셔너리 객체, 키-값 쌍, 또는 연관 배열(associative array)이라고도 하는) 맵 데이터 구조의 키와 값을 생성하고 처리하는 함수들을 담고 있습니다. 값들의 순서가 중요한 목록 데이터 구조 와는 달리, 맵 객체에 있는 키-값 쌍은 중요하지 않고 값을 값의 키로 식별합니다.

12.2.16.1. from_json

JSON 서식 문자열을 불러옵니다.

문법

from_json(string)

인자

  • string - JSON 문자열

예제

  • from_json('{"qgis":"rocks"}') → { ‘qgis’: ‘rocks’ }

  • from_json('[1,2,3]') → [1,2,3]

12.2.16.2. hstore_to_map

HStore 서식 문자열로부터 맵을 생성합니다.

문법

hstore_to_map(string)

인자

  • string - 입력 문자열

예제

  • hstore_to_map('qgis=>rocks') → { ‘qgis’: ‘rocks’ }

12.2.16.3. map

파라미터 쌍으로 전달된 모든 키와 값을 담고 있는 맵을 반환합니다.

문법

map(key1, value1, key2, value2, …)

인자

  • key - 키(문자열)

  • value - 값

예제

  • map('1','one','2', 'two') → { ‘1’: ‘one’, ‘2’: ‘two’ }

  • map('1','one','2', 'two')['1'] → ‘one’

12.2.16.4. map_akeys

맵의 모든 키를 배열로 반환합니다.

문법

map_akeys(map)

인자

  • map - 맵

예제

  • map_akeys(map('1','one','2','two')) → [ ‘1’, ‘2’ ]

12.2.16.5. map_avals

맵의 모든 값을 배열로 반환합니다.

문법

map_avals(map)

인자

  • map - 맵

예제

  • map_avals(map('1','one','2','two')) → [ ‘one’, ‘two’ ]

12.2.16.6. map_concat

지정한 맵의 모든 항목들을 담고 있는 맵을 반환합니다. 두 맵이 동일한 키를 담고 있는 경우, 두 번째 맵의 값을 취합니다.

문법

map_concat(map1, map2, …)

인자

  • map - 맵

예제

  • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { ‘1’: ‘one’, ‘2’: ‘two’, ‘3’: ‘three’ }

12.2.16.7. map_delete

지정한 키와 그에 대응하는 값을 삭제한 맵을 반환합니다.

문법

map_delete(map, key)

인자

  • map - 맵

  • key - 삭제할 키

예제

  • map_delete(map('1','one','2','two'),'2') → { ‘1’: ‘one’ }

12.2.16.8. map_exist

지정한 키가 맵에 실재하는 경우 참을 반환합니다.

문법

map_exist(map, key)

인자

  • map - 맵

  • key - 검색할 키

예제

  • map_exist(map('1','one','2','two'),'3') → 거짓

12.2.16.9. map_get

지정한 키에 대응하는 맵의 값을 반환합니다. 키가 실재하지 않는 경우 NULL을 반환합니다.

문법

map_get(map, key)

인자

  • map - 맵

  • key - 검색할 키

예제

  • map_get(map('1','one','2','two'),'2') → ‘two’

  • map_get( item_variables('Map 0'), 'map_scale') → 현재 인쇄 조판의 (‘Map 0’ 항목이 있는 경우) ‘Map 0’ 항목의 축척

힌트

You can also use the index operator ([]) to get a value from a map.

12.2.16.10. map_insert

추가한 키/값을 가진 맵을 반환합니다. 키가 이미 존재하는 경우, 그 값을 무시합니다.

문법

map_insert(map, key, value)

인자

  • map - 맵

  • key - 추가할 키

  • value - 추가할 값

예제

  • map_insert(map('1','one'),'3','three') → { ‘1’: ‘one’, ‘3’: ‘three’ }

  • map_insert(map('1','one','2','overridden'),'2','two') → { ‘1’: ‘one’, ‘2’: ‘two’ }

12.2.16.11. map_to_hstore

맵 요소들을 HStore 서식 문자열로 병합합니다.

문법

map_to_hstore(map)

인자

  • map - 입력 맵

예제

  • map_to_hstore(map('qgis','rocks')) → ‘“qgis”=>”rocks”’

12.2.16.12. to_json

맵, 배열, 또는 다른 값으로부터 JSON 서식 문자열을 생성합니다.

문법

to_json(value)

인자

  • value - 입력 값

예제

  • to_json(map('qgis','rocks')) → {“qgis”:”rocks”}

  • to_json(array(1,2,3)) → [1,2,3]

12.2.17. 수학 함수

이 그룹은 (제곱근, 삼각함수 등의) 수학 함수를 담고 있습니다.

12.2.17.1. abs

숫자의 절댓값을 반환합니다.

문법

abs(value)

인자

  • value - 숫자

예제

  • abs(-2) → 2

12.2.17.2. acos

값의 시컨트(역 코사인)를 라디안 단위로 반환합니다.

문법

acos(value)

인자

  • value - 라디안 단위 각도의 코사인

예제

  • acos(0.5) → 1.0471975511966

12.2.17.3. asin

값의 코시컨트(역 사인)를 라디안 단위로 반환합니다.

문법

asin(value)

인자

  • value - 라디안 단위 각도의 사인

예제

  • asin(1.0) → 1.5707963267949

12.2.17.4. atan

값의 코탄젠트(역 탄젠트)를 라디안 단위로 반환합니다.

문법

atan(value)

인자

  • value - 라디안 단위 각도의 탄젠트

예제

  • atan(0.5) → 0.463647609000806

12.2.17.5. atan2

결과물의 사분면을 결정하기 위해 두 인자의 사인 값을 이용해서 dy/dx 값의 코탄젠트(역 탄젠트)를 반환합니다.

문법

atan2(dy, dx)

인자

  • dy - Y 좌표 차(difference)

  • dx - X 좌표 차(difference)

예제

  • atan2(1.0, 1.732) → 0.523611477769969

12.2.17.6. ceil

숫자를 올림합니다.

문법

ceil(value)

인자

  • value - 숫자

예제

  • ceil(4.9) → 5

  • ceil(-4.9) → -4

12.2.17.7. clamp

입력값을 지정한 범위로 제한합니다.

문법

clamp(minimum, input, maximum)

인자

  • minimum - 입력 받을 수 있는 최소값

  • input - 최소최대 로 지정된 범위로 제한될 값

  • maximum - 입력 받을 수 있는 최대값

예제

  • clamp(1,5,10) → 5

    input 이 1과 10 사이이기 때문에, 그대로 반환됩니다.

  • clamp(1,0,10) → 1

    input 이 최소값 1 미만이기 때문에, 함수가 1을 반환합니다

  • clamp(1,11,10) → 10

    input 이 최대값 10을 초과하기 때문에, 함수가 10을 반환합니다

12.2.17.8. cos

각도의 코사인을 반환합니다.

문법

cos(angle)

인자

  • angle - 라디안 단위 각도

예제

  • cos(1.571) → 0.000796326710733263

12.2.17.9. degrees

라디안 단위를 도 단위로 변환합니다.

문법

degrees(radians)

인자

  • radians - 숫자 값

예제

  • degrees(3.14159) → 180

  • degrees(1) → 57.2958

12.2.17.10. exp

값의 지수(exponential)를 반환합니다.

문법

exp(value)

인자

  • value - 지수(exponential)를 반환할 숫자

예제

  • exp(1.0) → 2.71828182845905

12.2.17.11. floor

숫자를 내림합니다.

문법

floor(value)

인자

  • value - 숫자

예제

  • floor(4.9) → 4

  • floor(-4.9) → -5

12.2.17.12. ln

값의 자연로그를 반환합니다.

문법

ln(value)

인자

  • value - 숫자 값

예제

  • ln(1) → 0

  • ln(2.7182818284590452354) → 1

12.2.17.13. log

전달된 값 및 밑(base)의 로그 값을 반환합니다.

문법

log(base, value)

인자

  • base - 양수

  • value - 양수

예제

  • log(2, 32) → 5

  • log(0.5, 32) → -5

12.2.17.14. log10

전달된 표현식의 상용로그(밑이 10인 로그) 값을 반환합니다.

문법

log10(value)

인자

  • value - 양수

예제

  • log10(1) → 0

  • log10(100) → 2

12.2.17.15. max

값의 집합에서 가장 큰 값을 반환합니다.

문법

max(value1, value2, …)

인자

  • value - 숫자

예제

  • max(2,10.2,5.5) → 10.2

  • max(20.5,NULL,6.2) → 20.5

12.2.17.16. min

값의 집합에서 가장 작은 값을 반환합니다.

문법

min(value1, value2, …)

인자

  • value - 숫자

예제

  • min(20.5,10,6.2) → 6.2

  • min(2,-10.3,NULL) → -10.3

12.2.17.17. pi

계산을 위한 파이(π) 값을 반환합니다.

문법

pi()

예제

  • pi() → 3.14159265358979

12.2.17.18. radians

도 단위를 라디안 단위로 변환합니다.

문법

radians(degrees)

인자

  • degrees - 숫자 값

예제

  • radians(180) → 3.14159

  • radians(57.2958) → 1

12.2.17.19. rand

최소 및 최대 인자가 지정하는 범위 안에서 임의의 정수를 반환합니다. (최소값, 최대값 포함) 시드를 지정한 경우, 시드에 따라 항상 동일한 값을 반환할 것입니다.

문법

rand(min, max, [seed=NULL])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • min - 원하는 가장 작은 난수를 나타내는 정수

  • max - 원하는 가장 큰 난수를 나타내는 정수

  • seed - 시드로 사용할 값

예제

  • rand(1, 10) → 8

12.2.17.20. randf

최소 및 최대 인자가 지정하는 범위 안에서 임의의 부동소수점형 실수를 반환합니다. (최소값, 최대값 포함) 시드를 지정한 경우, 시드에 따라 항상 동일한 값을 반환할 것입니다.

문법

randf([min=0.0], [max=1.0], [seed=NULL])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • min - 원하는 가장 작은 난수를 나타내는 실수

  • max - 원하는 가장 큰 난수를 나타내는 실수

  • seed - 시드로 사용할 값

예제

  • randf(1, 10) → 4.59258286403147

12.2.17.21. round

숫자를 소수점 이하 자릿수로 반올림합니다.

문법

round(value, [places=0])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • value - 반올림할 실수

  • places - 소수점 이하 자리를 반올림할 자릿수를 나타내는 선택적인 정수입니다. 음수값도 가능합니다.

예제

  • round(1234.567, 2) → 1234.57

  • round(1234.567) → 1235

  • round(1234.567, -1) → 1230

12.2.17.22. scale_exp

지정한 값을 지수 곡선(exponential curve)을 이용해서 입력 범위에서 출력 범위로 변형합니다. 이 함수를 사용하면 지정한 산출 범위로 값을 부드럽게 조정(ease in or ease out)할 수 있습니다.

문법

scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)

인자

  • value - 입력 범위에 있는 값. 이 함수는 산출 범위에 대응하는 조정된 값을 반환할 것입니다.

  • domain_min - 입력 값이 취해야 할 가장 작은 값인 입력 범위의 최소값을 지정합니다.

  • domain_max - 입력 값이 취해야 할 가장 큰 값인 입력 범위의 최대값을 지정합니다.

  • range_min - 함수가 산출해야 할 가장 작은 값인 산출 범위의 최소값을 지정합니다.

  • range_max - 함수가 산출해야 할 가장 큰 값인 산출 범위의 최대값을 지정합니다.

  • exponent - 입력값이 산출 범위에 매핑되는 방식을 지정하는 (0보다 큰) 양의 값입니다. 큰 지수는 입력 값이 범위 최대값에 도달할 때 가속하기 전에 천천히 시작하여 산출값을 부드럽게 조정(ease in)되도록 만듭니다. 지수가 작으면 (1 미만) 산출값이 부드럽게 조정(ease out) 되고 매핑이 빠르게 시작되지만 범위 최대 값에 도달하면 속도가 느려집니다.

예제

  • scale_exp(5,0,10,0,100,2) → 25

    지수 2를 사용해서 부드럽게 조정(ease in)

  • scale_exp(3,0,10,0,100,0.5) → 54.772

    지수 0.5를 사용해서 부드럽게 조정(ease out)

12.2.17.23. scale_linear

지정한 값을 선형 보간(linear interpolation)을 이용해서 입력 범위에서 출력 범위로 변형합니다.

문법

scale_linear(value, domain_min, domain_max, range_min, range_max)

인자

  • value - 입력 범위에 있는 값. 이 함수는 산출 범위에 대응하는 조정된 값을 반환할 것입니다.

  • domain_min - 입력 값이 취해야 할 가장 작은 값인 입력 범위의 최소값을 지정합니다.

  • domain_max - 입력 값이 취해야 할 가장 큰 값인 입력 범위의 최대값을 지정합니다.

  • range_min - 함수가 산출해야 할 가장 작은 값인 산출 범위의 최소값을 지정합니다.

  • range_max - 함수가 산출해야 할 가장 큰 값인 산출 범위의 최대값을 지정합니다.

예제

  • scale_linear(5,0,10,0,100) → 50

  • scale_linear(0.2,0,1,0,360) → 72

    0에서 1 사이의 값을 0에서 360 사이의 각도로 조정

  • scale_linear(1500,1000,10000,9,20) → 9.6111111

    1,000명에서 10,000명 사이에서 변화하는 인구를 글꼴 크기 9에서 20 사이로 조정

12.2.17.24. sin

각도의 사인을 반환합니다.

문법

sin(angle)

인자

  • angle - 라디안 단위 각도

예제

  • sin(1.571) → 0.999999682931835

12.2.17.25. sqrt

값의 제곱근을 반환합니다.

문법

sqrt(value)

인자

  • value - 숫자

예제

  • sqrt(9) → 3

12.2.17.26. tan

각도의 탄젠트를 반환합니다.

문법

tan(angle)

인자

  • angle - 라디안 단위 각도

예제

  • tan(1.0) → 1.5574077246549

12.2.18. Meshes Functions

This group contains functions which calculate or return mesh related values.

12.2.18.1. $face_area

Returns the area of the current mesh face. The area calculated by this function respects both the current project’s ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric.

문법

$face_area

예제

  • $face_area → 42

12.2.18.2. $face_index

Returns the index of the current mesh face.

문법

$face_index

예제

  • $face_index → 4581

12.2.18.3. $vertex_as_point

Returns the current vertex as a point geometry.

문법

$vertex_as_point

예제

  • geom_to_wkt( $vertex_as_point ) → ‘POINT(800 1500 41)’

12.2.18.4. $vertex_index

Returns the index of the current mesh vertex.

문법

$vertex_index

예제

  • $vertex_index → 9874

12.2.18.5. $vertex_x

Returns the X coordinate of the current mesh vertex.

문법

$vertex_x

예제

  • $vertex_x → 42.12

12.2.18.6. $vertex_y

Returns the Y coordinate of the current mesh vertex.

문법

$vertex_y

예제

  • $vertex_y → 12.24

12.2.18.7. $vertex_z

Returns the Z value of the current mesh vertex.

문법

$vertex_z

예제

  • $vertex_z → 42

12.2.19. 연산자

이 그룹은 +, -, * 같은 연산자를 담고 있습니다. 다음에 설명하는 수학 함수들 대부분이, 입력 값 가운데 하나가 NULL인 경우 NULL을 반환한다는 점을 유념하십시오.

12.2.19.1. %

Remainder of division

문법

a % b

인자

  • a - value

  • b - value

예제

  • 5 % 4 → 1

  • 5 % NULL → NULL

12.2.19.2. *

Multiplication of two values

문법

a * b

인자

  • a - value

  • b - value

예제

  • 5 * 4 → 20

  • 5 * NULL → NULL

12.2.19.3. +

Addition of two values. If one of the values is NULL the result will be NULL.

문법

a + b

인자

  • a - value

  • b - value

예제

  • 5 + 4 → 9

  • 5 + NULL → NULL

  • 'QGIS ' + 'ROCKS' → ‘QGIS ROCKS’

  • to_datetime('2020-08-01 12:00:00') + '1 day 2 hours' → 2020-08-02T14:00:00

Further reading: concat, ||

12.2.19.4. -

Subtraction of two values. If one of the values is NULL the result will be NULL.

문법

a - b

인자

  • a - value

  • b - value

예제

  • 5 - 4 → 1

  • 5 - NULL → NULL

  • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00

12.2.19.5. /

Division of two values

문법

a / b

인자

  • a - value

  • b - value

예제

  • 5 / 4 → 1.25

  • 5 / NULL → NULL

12.2.19.6. <

Compares two values and evaluates to 1 if the left value is less than the right value.

문법

a < b

인자

  • a - value

  • b - value

예제

  • 5 < 4 → 0

  • 5 < 5 → 0

  • 4 < 5 → 1

12.2.19.7. <=

Compares two values and evaluates to 1 if the left value is less or equal than the right value.

문법

a <= b

인자

  • a - value

  • b - value

예제

  • 5 <= 4 → 0

  • 5 <= 5 → 1

  • 4 <= 5 → 1

12.2.19.8. <>

Compares two values and evaluates to 1 if they are not equal.

문법

a <> b

인자

  • a - value

  • b - value

예제

  • 5 <> 4 → 1

  • 4 <> 4 → 0

  • 5 <> NULL → NULL

  • NULL <> NULL → NULL

12.2.19.9. =

Compares two values and evaluates to 1 if they are equal.

문법

a = b

인자

  • a - value

  • b - value

예제

  • 5 = 4 → 0

  • 4 = 4 → 1

  • 5 = NULL → NULL

  • NULL = NULL → NULL

12.2.19.10. >

Compares two values and evaluates to 1 if the left value is greater than the right value.

문법

a > b

인자

  • a - value

  • b - value

예제

  • 5 > 4 → 1

  • 5 > 5 → 0

  • 4 > 5 → 0

12.2.19.11. >=

Compares two values and evaluates to 1 if the left value is greater or equal than the right value.

문법

a >= b

인자

  • a - value

  • b - value

예제

  • 5 >= 4 → 1

  • 5 >= 5 → 1

  • 4 >= 5 → 0

12.2.19.12. AND

Returns 1 when condition a and b are true.

문법

a AND b

인자

  • a - condition

  • b - condition

예제

  • TRUE AND TRUE → 1

  • TRUE AND FALSE → 0

  • 4 = 2+2 AND 1 = 1 → 1

  • 4 = 2+2 AND 1 = 2 → 0

12.2.19.13. ILIKE

Returns 1 if the first parameter matches case-insensitive the supplied pattern. LIKE can be used instead of ILIKE to make the match case-sensitive. Works with numbers also.

문법

string/number ILIKE pattern

인자

  • string/number - string to search

  • pattern - pattern to find, you can use ‘%’ as a wildcard, ‘_’ as a single char and ‘\\’ to escape these special characters.

예제

  • 'A' ILIKE 'A' → 1

  • 'A' ILIKE 'a' → 1

  • 'A' ILIKE 'B' → 0

  • 'ABC' ILIKE 'b' → 0

  • 'ABC' ILIKE 'B' → 0

  • 'ABC' ILIKE '_b_' → 1

  • 'ABC' ILIKE '_B_' → 1

  • 'ABCD' ILIKE '_b_' → 0

  • 'ABCD' ILIKE '_B_' → 0

  • 'ABCD' ILIKE '_b%' → 1

  • 'ABCD' ILIKE '_B%' → 1

  • 'ABCD' ILIKE '%b%' → 1

  • 'ABCD' ILIKE '%B%' → 1

  • 'ABCD%' ILIKE 'abcd\\%' → 1

  • 'ABCD' ILIKE '%B\\%' → 0

12.2.19.14. IN

Returns 1 if value is found within a list of values.

문법

a IN b

인자

  • a - value

  • b - list of values

예제

  • 'A' IN ('A','B') → 1

  • 'A' IN ('C','B') → 0

12.2.19.15. IS

Returns 1 if a is the same as b.

문법

a IS b

인자

  • a - any value

  • b - any value

예제

  • 'A' IS 'A' → 1

  • 'A' IS 'a' → 0

  • 4 IS 4 → 1

  • 4 IS 2+2 → 1

  • 4 IS 2 → 0

  • $geometry IS NULL → 0, if your geometry is not NULL

12.2.19.16. IS NOT

Returns 1 if a is not the same as b.

문법

a IS NOT b

인자

  • a - value

  • b - value

예제

  • 'a' IS NOT 'b' → 1

  • 'a' IS NOT 'a' → 0

  • 4 IS NOT 2+2 → 0

12.2.19.17. LIKE

Returns 1 if the first parameter matches the supplied pattern. Works with numbers also.

문법

string/number LIKE pattern

인자

  • string/number - value

  • pattern - pattern to compare value with, you can use ‘%’ as a wildcard, ‘_’ as a single char and ‘\\’ to escape these special characters.

예제

  • 'A' LIKE 'A' → 1

  • 'A' LIKE 'a' → 0

  • 'A' LIKE 'B' → 0

  • 'ABC' LIKE 'B' → 0

  • 'ABC' LIKE '_B_' → 1

  • 'ABCD' LIKE '_B_' → 0

  • 'ABCD' LIKE '_B%' → 1

  • 'ABCD' LIKE '%B%' → 1

  • '1%' LIKE '1\\%' → 1

  • '1_' LIKE '1\\%' → 0

12.2.19.18. NOT

Negates a condition.

문법

NOT a

인자

  • a - condition

예제

  • NOT 1 → 0

  • NOT 0 → 1

12.2.19.19. OR

Returns 1 when condition a or b is true.

문법

a OR b

인자

  • a - condition

  • b - condition

예제

  • 4 = 2+2 OR 1 = 1 → 1

  • 4 = 2+2 OR 1 = 2 → 1

  • 4 = 2   OR 1 = 2 → 0

12.2.19.20. []

Index operator. Returns an element from an array or map value.

문법

[index]

인자

  • index - array index or map key value

예제

  • array(1,2,3)[0] → 1

  • array(1,2,3)[2] → 3

  • array(1,2,3)[-1] → 3

  • map('a',1,'b',2)['a'] → 1

  • map('a',1,'b',2)['b'] → 2

Further reading: array_get, map_get

12.2.19.21. ^

Power of two values.

문법

a ^ b

인자

  • a - value

  • b - value

예제

  • 5 ^ 4 → 625

  • 5 ^ NULL → NULL

12.2.19.22. ||

Joins two values together into a string.

If one of the values is NULL the result will be NULL. See the CONCAT function for a different behavior.

문법

a || b

인자

  • a - value

  • b - value

예제

  • 'Here' || ' and ' || 'there' → ‘Here and there’

  • 'Nothing' || NULL → NULL

  • 'Dia: ' || "Diameter" → ‘Dia: 25’

  • 1 || 2 → ‘12’

Further reading: concat, +

12.2.19.23. ~

Performs a regular expression match on a string value. Backslash characters must be double escaped (e.g., “\\s” to match a white space character).

문법

string ~ regex

인자

  • string - A string value

  • regex - A regular expression. Slashes must be escaped, eg \\d.

예제

  • 'hello' ~ 'll' → 1

  • 'hello' ~ '^ll' → 0

  • 'hello' ~ 'llo$' → 1

  • 'abc123' ~ '\\d+' → 1

Further reading: regexp_match

12.2.20. 공간 처리 함수

이 그룹은 공간 처리 알고리즘을 대상으로 실행되는 함수를 담고 있습니다.

12.2.20.1. 파라미터

공간 처리 알고리즘의 입력 파라미터의 값을 반환합니다.

문법

parameter(name)

인자

  • name - 대응하는 입력 파라미터의 이름

예제

  • parameter('BUFFER_SIZE') → 5.6

12.2.21. 래스터 함수

이 그룹은 래스터 레이어를 대상으로 실행되는 함수를 담고 있습니다.

12.2.21.1. raster_statistic

래스터 레이어의 통계를 반환합니다.

문법

raster_statistic(layer, band, property)

인자

  • layer - 래스터 레이어 이름 또는 레이어 ID 가운데 하나를 나타내는 문자열

  • band - 래스터 레이어의 1로 시작하는 밴드 번호를 나타내는 정수

  • property - 반환할 속성에 대응하는 문자열입니다. 사용할 수 있는 옵션은 다음과 같습니다:

    • min: 최소값

    • max: 최대값

    • avg: 평균값

    • stdev: 값들의 표준 편차

    • range: 값의 범위(최대 - 최소)

    • sum: 래스터에서 나온 모든 값들의 합계

예제

  • raster_statistic('lc',1,'avg') → ‘lc’ 래스터 레이어의 밴드 1의 평균값

  • raster_statistic('ac2010',3,'min') → ‘ac2010’ 래스터 레이어의 밴드 3의 최소값

12.2.21.2. raster_value

입력 포인트 위치의 래스터 값을 반환합니다.

문법

raster_value(layer, band, point)

인자

  • layer - 래스터 레이어의 이름 또는 ID

  • band - 값을 가져올 밴드 번호

  • point - 포인트 도형 (하나 이상의 부분을 가진 다중 부분 도형의 경우, NULL 값을 반환할 것입니다)

예제

  • raster_value('dem', 1, make_point(1,1)) → 25

12.2.22. 레코드 및 속성 함수

이 그룹은 레코드 식별자를 대상으로 하는 함수를 담고 있습니다.

12.2.22.1. attribute

피처로부터 속성을 반환합니다.

변이형 1

현재 피처에서 나온 속성의 값을 반환합니다.

문법

attribute(attribute_name)

인자

  • attribute_name - 반환할 속성의 이름

예제

  • attribute( 'name' ) → 현재 피처의 ‘name’ 속성에 저장된 값

변이형 2

대상 피처 및 속성 이름을 지정할 수 있게 해줍니다.

문법

attribute(feature, attribute_name)

인자

  • feature - 피처

  • attribute_name - 반환할 속성의 이름

예제

  • attribute( @atlas_feature, 'name' ) → 현재 지도책 피처의 ‘name’ 속성에 저장된 값

12.2.22.2. attributes

피처의 모든 속성을 담고 있는, 필드명을 맵 키로 가진 맵을 반환합니다.

변이형 1

현재 피처의 모든 속성의 맵을 반환합니다.

문법

attributes()

예제

  • attributes()['name'] → 현재 피처의 ‘name’ 속성에 저장된 값

변이형 2

대상 피처를 지정할 수 있게 해줍니다.

문법

attributes(feature)

인자

  • feature - 피처

예제

  • attributes( @atlas_feature )['name'] → 현재 지도책 피처의 ‘name’ 속성에 저장된 값

더 읽어볼 거리: 맵 함수

12.2.22.3. $currentfeature

평가 중인 현재 피처를 반환합니다. 현재 피처의 속성값을 평가하기 위해 attribute 함수와 함께 사용할 수 있습니다.

문법

$currentfeature

예제

  • attribute( $currentfeature, 'name' ) → 현재 피처의 ‘name’ 속성에 저장된 값

12.2.22.4. display_expression

레이어에서 지정한 피처에 대한 표시(display) 표현식을 반환합니다. 기본적으로 표현식을 평가합니다. 인자를 0개, 1개 또는 그 이상 사용할 수 있습니다. 자세한 내용은 다음을 참조하세요.

파라미터 없음

파라미터 없이 호출하는 경우, 이 함수는 현재 레이어에 있는 현재 피처의 표시 표현식을 평가할 것입니다.

문법

display_expression()

예제

  • display_expression() → 현재 레이어에 있는 현재 피처의 표시 표현식

‘피처’ 1개 파라미터

‘feature’ 파라미터 1개로만 호출하는 경우, 이 함수는 현재 레이어에서 지정한 피처를 평가할 것입니다.

문법

display_expression(feature)

인자

  • feature - 평가해야 할 피처

예제

  • display_expression(@atlas_feature) → 현재 지도책 피처의 표시 표현식

레이어와 피처 파라미터

함수를 레이어와 피처와 함께 호출하는 경우, 지정한 레이어에서 지정한 피처를 평가할 것입니다.

문법

display_expression(layer, feature, [evaluate=true])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 레이어 (또는 레이어 ID 또는 이름)

  • feature - 평가해야 할 피처

  • evaluate - 표현식을 평가해야만 하는지 여부. 거짓인 경우, 표현식을 문자 그대로의 문자열로 반환할 것입니다. (이 문자열을 나중에 ‘eval’ 함수로 평가할 수도 있습니다.)

예제

  • display_expression( 'streets', get_feature_by_id('streets', 1)) → ‘streets’ 레이어에 있는 ID 1인 피처의 표시 표현식

  • display_expression('a_layer_id', $currentfeature, 'False') → 지정한 피처의 평가하지 않은 표시 표현식

12.2.22.5. get_feature

지정한 속성값과 일치하는 레이어의 첫 번째 피처를 반환합니다.

문법

get_feature(layer, attribute, value)

인자

  • layer - 레이어 이름 또는 ID

  • attribute - 속성 이름

  • value - 일치시킬 속성값

예제

  • get_feature('streets','name','main st') → “name” 필드에 “main st” 값을 가진 “streets” 레이어에서 검색된 첫 번째 피처

12.2.22.6. get_feature_by_id

레이어에서 ID를 가진 피처를 반환합니다.

문법

get_feature_by_id(layer, feature_id)

인자

  • layer - 레이어, 레이어 이름 또는 레이어 ID

  • feature_id - 반환해야 할 피처의 ID

예제

  • get_feature_by_id('streets', 1) → “streets” 레이어에서 ID가 1인 피처

더 읽어볼 거리: $id

12.2.22.7. $id

현재 행의 객체 ID를 반환합니다.

문법

$id

예제

  • $id → 42

12.2.22.8. is_selected

피처를 선택한 경우 참을 반환합니다. 인자를 0개, 1개 또는 그 이상 사용할 수 있습니다. 자세한 내용은 다음을 참조하세요.

파라미터 없음

파라미터 없이 호출하는 경우, 현재 레이어에서 현재 피처를 선택했다면 이 함수는 참을 반환할 것입니다.

문법

is_selected()

예제

  • is_selected() → 현재 레이어에서 현재 피처를 선택한 경우 참

‘피처’ 1개 파라미터

‘feature’ 파라미터 1개로만 호출하는 경우, 현재 레이어에서 지정한 피처를 선택했다면 이 함수는 참을 반환합니다.

문법

is_selected(feature)

인자

  • feature - 선택했는지 검증해야 할 피처

예제

  • is_selected(@atlas_feature) → True if the current atlas feature is selected.

  • is_selected(get_feature('streets', 'name', 'Main St.'))) → True if the unique named “Main St.” feature on the active “streets” layer is selected.

  • is_selected(get_feature_by_id('streets', 1)) → True if the feature with the id 1 on the active “streets” layer is selected.

파라미터 2개

함수를 레이어 및 피처와 함께 호출하는 경우, 지정한 레이어에서 지정한 피처를 선택했다면 이 함수는 참을 반환할 것입니다.

문법

is_selected(layer, feature)

인자

  • layer - 선택됐는지 검증할 레이어(또는 레이어 ID 또는 이름)

  • feature - 선택했는지 검증해야 할 피처

예제

  • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → 현재 건물의 거리를 선택했다면 참입니다. (건물 레이어가 ‘street_name’ 이라는 필드명을 가지고 있고 ‘streets’ 레이어가 유일값들을 담고 있는 ‘name’이라는 필드를 가고 있다고 가정합니다.)

  • is_selected( 'streets', get_feature_by_id('streets', 1)) → “streets” 레이어에서 ID가 1인 피처를 선택한 경우 참

12.2.22.9. maptip

레이어에서 지정한 피처에 대한 맵 도움말(maptip)을 반환합니다. 기본적으로 표현식을 평가합니다. 인자를 0개, 1개 또는 그 이상 사용할 수 있습니다. 자세한 내용은 다음을 참조하세요.

파라미터 없음

파라미터 없이 호출하는 경우, 이 함수는 현재 레이어에 있는 현재 피처의 맵 도움말을 평가할 것입니다.

문법

maptip()

예제

  • maptip() → 현재 레이어에 있는 현재 피처의 맵 도움말

‘피처’ 1개 파라미터

‘feature’ 파라미터 1개로만 호출하는 경우, 이 함수는 현재 레이어에서 지정한 피처를 평가할 것입니다.

문법

maptip(feature)

인자

  • feature - 평가해야 할 피처

예제

  • maptip(@atlas_feature) → 현재 지도책 피처의 맵 도움말

레이어와 피처 파라미터

함수를 레이어와 피처와 함께 호출하는 경우, 지정한 레이어에서 지정한 피처를 평가할 것입니다.

문법

maptip(layer, feature, [evaluate=true])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 레이어 (또는 레이어 ID 또는 이름)

  • feature - 평가해야 할 피처

  • evaluate - 표현식을 평가해야만 하는지 여부. 거짓인 경우, 표현식을 문자 그대로의 문자열로 반환할 것입니다. (나중에 ‘eval_template’ 함수로 평가할 수도 있습니다.)

예제

  • maptip('streets', get_feature_by_id('streets', 1)) → ‘streets’ 레이어에 있는 ID 1인 피처의 맵 도움말

  • maptip('a_layer_id', $currentfeature, 'False') → 지정한 피처의 평가하지 않은 맵 도움말

12.2.22.10. num_selected

지정한 레이어에서 선택한 객체들의 개수를 반환합니다. 기본적으로 표현식을 평가한 레이어 상에서 작동합니다.

문법

num_selected([layer=current layer])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • layer - 선택됐는지 검증할 레이어(또는 레이어 ID 또는 이름)

예제

  • num_selected() → 현재 레이어에서 선택한 피처 개수

  • num_selected('streets') → ‘streets’ 레이어에서 선택한 피처 개수

12.2.22.11. represent_value

필드값에 대해 구성된 표현값을 반환합니다. 구성된 위젯 유형에 따라 다릅니다. 흔히 ‘Value Map’ 위젯에 유용합니다.

문법

represent_value(value, fieldName)

인자

  • value - 해석되어야 할 값입니다. 대부분 필드일 겁니다.

  • fieldName - 위젯 환경 설정을 불러와야 할 필드 이름입니다. (선택적)

예제

  • represent_value("field_with_value_map") → 값에 대한 설명

  • represent_value('static value', 'field_name') → 통계값에 대한 설명

더 읽어볼 거리: 위젯 유형

12.2.22.12. sqlite_fetch_and_increment

SQLite 데이터베이스에서 자동으로 증가하는 값을 관리합니다.

SQLite 기본값들은 삽입할 수 있을 뿐 사전에 불러올 수는 없습니다.

이런 습성 때문에, 데이터베이스에 행을 생성하기 전에 AUTO_INCREMENT를 통해 증가하는 기본 키를 획득할 수 없게 됩니다. 주의: PostgreSQL의 경우, evaluate default values 옵션을 통해 사전에 기본 키를 가져올 수 있습니다.

관계를 가진 새 피처를 추가할 때, 부모 양식이 아직 열려 있어서 부모 피처가 커밋되기 전에 이미 부모에 대한 자식을 추가할 수 있다면 참 편리하겠지요.

이런 제약을 해결하기 위해, GeoPackage 같은 포맷에 기반한 SQLite에 있는 개별 테이블에 일련의 값들을 관리하는 데 이 함수를 사용할 수 있습니다.

시퀀스 ID(filter_attribute 및 filter_value)에 대해 시퀀스 테이블을 필터링하고, id_field의 현재 값을 1씩 증가시킨 다음 증가된 값을 반환할 것입니다.

추가적인 열들이 지정할 값들을 요구하는 경우, 이 목적을 위해 default_values 맵을 사용할 수 있습니다.

주의

이 함수는 대상 SQLite 테이블을 수정합니다. 이 함수는 속성에 대한 기본값 환경 설정을 위해 활용되도록 만들어졌습니다.

데이터베이스 파라미터가 레이어이고 레이어가 트랜잭션 모드인 경우, 트랜잭션 생애 주기 동안 한번만 값을 가져와 캐시에 저장하고 증가시킬 것입니다. 따라서 동일한 데이터베이스에서 여러 프로세스를 병렬 작업하는 것은 안전하지 않습니다.

문법

sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • database - SQLite 파일 또는 GeoPackage 레이어를 가리키는 경로

  • table - 시퀀스를 관리하는 테이블의 이름

  • id_field - 현재 값을 담고 있는 필드의 이름

  • filter_attribute - 이 시퀀스의 고유 식별자를 담고 있는 필드의 이름입니다. UNIQUE 인덱스를 가지고 있어야만 합니다.

  • filter_value - 사용할 시퀀스의 이름

  • default_values - 테이블에 있는 추가적인 열들의 기본값을 가진 맵입니다. 이 값들은 인용 부호로 묶여 있어야 합니다. 이 파라미터에 함수를 입력할 수 있습니다.

예제

  • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

  • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0

더 읽어볼 거리: 데이터소스 속성, 일대다 또는 다대다 관계 생성

12.2.22.13. uuid

Generates a Universally Unique Identifier (UUID) for each row using the Qt QUuid::createUuid method.

문법

uuid([format=’WithBraces’])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • format - The format, as the UUID will be formatted. ‘WithBraces’, ‘WithoutBraces’ or ‘Id128’.

예제

  • uuid() → ‘{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}’

  • uuid('WithoutBraces') → ‘0bd2f60f-f157-4a6d-96af-d4ba4cb366a1’

  • uuid('Id128') → ‘0bd2f60ff1574a6d96afd4ba4cb366a1’

12.2.23. 관계

이 그룹은 현재 프로젝트에서 사용할 수 있는 관계 목록을 그 설명과 함께 담고 있습니다. 이 목록을 통해 표현식을 작성하거나 (예: relation_aggregate 함수) 양식을 사용자 정의하는 데 필요한 관계 ID에 빠르게 접근할 수 있습니다.

12.2.24. 문자열 함수

이 그룹은 문자열을 대상으로 하는 (예: 치환, 대문자 변환 등) 함수를 담고 있습니다.

12.2.24.1. ascii

문자열의 첫 번째 문자와 관련된 유니코드 코드를 반환합니다.

문법

ascii(string)

인자

  • string - 유니코드 코드로 변환할 문자열

예제

  • ascii('Q') → 81

12.2.24.2. char

유니코드 코드와 관련된 문자를 반환합니다.

문법

char(code)

인자

  • code - 유니코드 코드 번호

예제

  • char(81) → ‘Q’

12.2.24.3. concat

여러 문자열을 하나로 연결합니다. NULL 값은 빈 문자열로 변환되고, (숫자 같은) 다른 값은 문자열로 변환됩니다.

문법

concat(string1, string2, …)

인자

  • string - 문자열 값

예제

  • concat('sun', 'set') → ‘sunset’

  • concat('a','b','c','d','e') → ‘abcde’

  • concat('Anno ', 1984) → ‘Anno 1984’

  • concat('The Wall', NULL) → ‘The Wall’

필드 연결에 대해

특수한 몇몇 특성을 가진 || 또는 + 가운데 하나를 사용해서도 문자열 또는 필드값을 연결할 수 있습니다:

  • + 연산자는 덧셈 표현식이기도 합니다. 따라서 정수형(필드 또는 숫자값) 피연산자가 있을 경우 오류를 낼 가능성이 있으므로 || 연산자 또는 concat 함수를 사용하는 편이 좋습니다:

    'My feature id is: ' + "gid" => triggers an error as gid returns an integer
    
  • NULL값인 인수가 하나라도 있을 경우, || 또는 + 둘 다 NULL값을 반환할 것입니다. NULL값에 상관없이 다른 인수를 반환하게 하려면, concat 함수를 사용해야 할 수도 있습니다:

    'My feature id is: ' + NULL ==> NULL
    'My feature id is: ' || NULL => NULL
    concat('My feature id is: ', NULL) => 'My feature id is: '
    

further reading: ||, +

12.2.24.4. format

지정한 인자를 이용해서 문자열 서식을 변경합니다.

문법

format(string, arg1, arg2, …)

인자

  • string - A string with placeholders %1, %2, etc., for the arguments. Placeholders can be repeated. The lowest numbered placeholder is replaced by arg1, the next by arg2, etc.

  • arg - 모든 유형, 제한 없는 개수의 인자

예제

  • format('This %1 a %2','is', 'test') → ‘This is a test’

  • format('This is %2','a bit unexpected but 2 is lowest number in string','normal') → ‘This is a bit unexpected but 2 is lowest number in string’

12.2.24.5. format_date

날짜 유형 또는 문자열을 사용자 정의 문자열 서식으로 변환합니다. Qt 날짜&시간 서식 문자열을 사용하십시오. QDateTime::toString 을 참조하세요.

문법

format_date(datetime, format, [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • datetime - 날짜, 시간 또는 날짜&시간 값

  • format - 문자열을 서식화하는 데 쓰이는 문자열 템플릿

    표현식

    산출물

    d

    앞에 0이 없는 숫자 일 (1에서 31)

    dd

    앞에 0이 있는 숫자 일 (01에서 31)

    ddd

    축약된 현지 요일 이름 (예 : ‘Mon’ 에서 ‘Sun’)

    dddd

    축약하지 않은 현지 요일 이름 (예: ‘Monday’ 에서 ‘Sunday’)

    M

    앞에 0이 없는 숫자 월 (1-12)

    MM

    앞에 0이 있는 숫자 월 (01-12)

    MMM

    축약된 현지 월 이름 (예 : ‘Jan’ 에서 ‘Dec’)

    MMMM

    축약하지 않은 현지 월 이름 (예: ‘January’ 에서 ‘December’)

    yy

    두 자리 숫자 연도 (00-99)

    yyyy

    네 자리 숫자 연도

    다음 표현식은 서식 문자열의 시간 부분에 쓰일 수도 있습니다:

    표현식

    산출물

    h

    앞에 0이 없는 시간 (0에서 23 또는 AM/PM 표시가 있는 경우 1에서 12)

    hh

    앞에 0이 있는 시간 (00에서 23 또는 AM/PM 표시가 있는 경우 01에서 12)

    H

    앞에 0이 없는 시간 (AM/PM 표시가 있는 경우에도 0에서 23)

    HH

    앞에 0이 있는 시간 (AM/PM 표시가 있는 경우에도 00에서 23)

    m

    앞에 0이 없는 분 (0에서 59)

    mm

    앞에 0이 있는 분 (00에서 59)

    s

    앞에 0이 없는 초 (0에서 59)

    ss

    앞에 0이 있는 초 (00에서 59)

    z

    뒤에 0이 없는 밀리초 (0에서 999)

    zzz

    뒤에 0이 있는 밀리초 (000에서 999)

    AP or A

    AM/PM 시간으로 해석합니다. AP 는 ‘AM’ 또는 ‘PM’ 이어야만 합니다.

    ap or a

    AM/PM 시간으로 해석합니다. ap 는 ‘am’ 또는 ‘pm’ 이어야만 합니다.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string. By default the current QGIS user locale is used.

예제

  • format_date('2012-05-15','dd.MM.yyyy') → ‘15.05.2012’

  • format_date('2012-05-15','d MMMM yyyy','fr') → ‘15 mai 2012’

  • format_date('2012-05-15','dddd') → ‘Tuesday’, if the current locale is an English variant

  • format_date('2012-05-15 13:54:20','dd.MM.yy') → ‘15.05.12’

  • format_date('13:54:20','hh:mm AP') → ‘01:54 PM’

12.2.24.6. format_number

Returns a number formatted with the locale separator for thousands. By default the current QGIS user locale is used. Also truncates the decimal places to the number of supplied places.

문법

format_number(number, [places=0], [language])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • number - 서식화할 숫자

  • places - 문자열을 잘라 맞출 십진 자릿수를 나타내는 정수입니다.

  • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the number into a string. By default the current QGIS user locale is used.

예제

  • format_number(10000000.332,2) → ‘10,000,000.33’ if e.g. the current locale is an English variant

  • format_number(10000000.332,2,'fr') → ‘10 000 000,33’

12.2.24.7. left

문자열 가장 왼쪽에 있는 n 개의 문자를 담은 하위 문자열을 반환합니다.

문법

left(string, length)

인자

  • string - 문자열

  • length - 정수. 문자열의 왼쪽을 기준으로 반환할 문자의 개수입니다.

예제

  • left('Hello World',5) → ‘Hello’

12.2.24.8. length

문자열의 문자 개수 또는 라인스트링 도형의 길이를 반환합니다.

문자열 변이형

문자열에 있는 문자의 개수를 반환합니다.

문법

length(string)

인자

  • string - 길이를 셀 문자열

예제

  • length('hello') → 5

도형 변이형

라인 도형 객체의 길이를 계산합니다. 언제나 해당 도형의 공간 참조 시스템(SRS)에서 평면 측량해서 계산하므로, 반환한 길이의 단위가 SRS 용 단위와 일치할 것입니다. 이것이 $length 함수가 수행하는 계산과 다른 점인데, $length 함수는 프로젝트의 타원체 및 거리 단위 설정을 기반으로 타원체 상에서 계산을 수행할 것입니다.

문법

length(geometry)

인자

  • geometry - 라인 도형 객체

예제

  • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0

12.2.24.9. lower

문자열을 소문자로 변환합니다.

문법

lower(string)

인자

  • string - 소문자로 변환할 문자열

예제

  • lower('HELLO World') → ‘hello world’

12.2.24.10. lpad

채우기 문자를 사용하여 왼쪽에서 지정된 너비까지 채운 문자열을 반환합니다. 대상 너비가 문자열의 길이보다 작은 경우 문자열이 잘립니다.

문법

lpad(string, width, fill)

인자

  • string - 채울 문자열

  • width - 새 문자열의 길이

  • fill - 남은 공백을 채울 문자

예제

  • lpad('Hello', 10, 'x') → ‘xxxxxHello’

  • lpad('Hello', 3, 'x') → ‘Hel’

12.2.24.11. regexp_match

유니코드 문자열 내부에서 정규 표현식과 첫번째로 일치하는 위치를 반환하거나, 하위 문자열을 찾지 못했을 경우 0을 반환합니다.

문법

regexp_match(input_string, regex)

인자

  • input_string - 정규 표현식에 대해 테스트할 문자열

  • regex - 테스트시킬 정규 표현식입니다. 백슬래시 문자는 이중으로 이스케이프시켜야만 합니다. (예: 공백 문자와 매칭하려면 “\\s”, 또는 단어 경계(word boundary)를 일치시키려면 “\\b”)

예제

  • regexp_match('QGIS ROCKS','\\sROCKS') → 5

  • regexp_match('Budač','udač\\b') → 2

12.2.24.12. regexp_replace

지정한 정규 표현식을 치환한 문자열을 반환합니다.

문법

regexp_replace(input_string, regex, replacement)

인자

  • input_string - 일치하는 경우 치환할 문자열

  • regex - 치환할 정규 표현식입니다. 백슬래시 문자는 이중으로 이스케이프시켜야만 합니다. (예: 공백 문자와 매칭하려면 “\\s”)

  • replacement - 지정한 정규 표현식과 일치하는 문자열을 치환할 문자열입니다. 캡처된 그룹은 \\1, \\2 등을 사용하여 대체 문자열에 삽입할 수 있습니다.

예제

  • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → ‘QGIS DOES ROCK’

  • regexp_replace('ABC123','\\d+','') → ‘ABC’

  • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\1') → ‘John is my name’

12.2.24.13. regexp_substr

문자열에서 지정한 정규 표현식과 일치하는 부분을 반환합니다.

문법

regexp_substr(input_string, regex)

인자

  • input_string - 일치하는 경우 검색할 문자열

  • regex - 일치시킬 정규 표현식. 백슬래시 문자는 이중으로 이스케이프시켜야만 합니다. (예: 공백 문자와 일치시키려면 “\\s”)

예제

  • regexp_substr('abc123','(\\d+)') → ‘123’

12.2.24.14. replace

문자열을 지정한 문자열, 배열, 또는 문자열의 맵으로 치환해서 반환합니다.

문자열 및 배열 변이형

지정한 문자열 또는 문자열 배열을 문자열 또는 문자열 배열로 치환해서 반환합니다.

문법

replace(string, before, after)

인자

  • string - 입력 문자열

  • before - 치환할 문자열 또는 문자열 배열

  • after - 치환에 사용할 문자열 또는 문자열 배열

예제

  • replace('QGIS SHOULD ROCK','SHOULD','DOES') → ‘QGIS DOES ROCK’

  • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → ‘QGIS XYZ’

  • replace('QGIS',array('Q','S'),'') → ‘GI’

맵 변이형

Returns a string with the supplied map keys replaced by paired values. Longer map keys are evaluated first.

문법

replace(string, map)

인자

  • string - 입력 문자열

  • map - 키와 값을 담고 있는 맵

예제

  • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD','DOES')) → ‘QGIS DOES ROCK’

  • replace('forty two',map('for','4','two','2','forty two','42')) → ‘42’

12.2.24.16. rpad

채우기 문자를 사용하여 오른쪽에서 지정된 너비까지 채운 문자열을 반환합니다. 대상 너비가 문자열의 길이보다 작은 경우 문자열이 잘립니다.

문법

rpad(string, width, fill)

인자

  • string - 채울 문자열

  • width - 새 문자열의 길이

  • fill - 남은 공백을 채울 문자

예제

  • rpad('Hello', 10, 'x') → ‘Helloxxxxx’

  • rpad('Hello', 3, 'x') → ‘Hel’

12.2.24.17. strpos

또다른 문자열 안에 있는 하위 문자열 가운데 첫 번째 일치하는 위치를, 또는 하위 문자열을 찾을 수 없는 경우 0을 반환합니다.

문법

strpos(haystack, needle)

인자

  • haystack - 검색 대상 문자열

  • needle - 검색할 문자열

예제

  • strpos('HELLO WORLD','WORLD') → 7

  • strpos('HELLO WORLD','GOODBYE') → 0

12.2.24.18. substr

문자열의 부분을 반환합니다.

문법

substr(string, start, [length])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 전체 입력 문자열

  • start - 추출할 시작 위치를 나타내는 1부터 시작하는 정수; 시작 위치가 음수이면 반환되는 문자열이 문자열 마지막에서 시작 값을 뺀 위치에서 시작합니다.

  • length - 추출할 문자열의 길이를 나타내는 정수. 길이가 음수이면 반환 문자열은 문자열의 끝에서 지정된 길이의 문자를 생략합니다.

예제

  • substr('HELLO WORLD',3,5) → ‘LLO W’

  • substr('HELLO WORLD',6) → ‘ WORLD’

  • substr('HELLO WORLD',-5) → ‘WORLD’

  • substr('HELLO',3,-1) → ‘LL’

  • substr('HELLO WORLD',-5,2) → ‘WO’

  • substr('HELLO WORLD',-5,-1) → ‘WORL’

12.2.24.19. title

문자열의 모든 단어를 제목 서식 (모든 단어의 첫 문자가 대문자, 나머지 문자는 소문자) 으로 변환합니다.

문법

title(string)

인자

  • string - 제목 서식으로 변환할 문자열

예제

  • title('hello WOrld') → ‘Hello World’

12.2.24.20. to_string

숫자를 문자열로 변환합니다.

문법

to_string(number)

인자

  • number - 정수형 또는 실수형 값. 문자열로 변환할 숫자입니다.

예제

  • to_string(123) → ‘123’

12.2.24.21. trim

문자열에서 맨 앞과 맨 뒤의 모든 빈 자리(공백, 탭 등)를 제거합니다.

문법

trim(string)

인자

  • string - 다듬을 문자열

예제

  • trim('   hello world    ') → ‘hello world’

12.2.24.22. upper

문자열을 대문자로 변환합니다.

문법

upper(string)

인자

  • string - 대문자로 변환할 문자열

예제

  • upper('hello WOrld') → ‘HELLO WORLD’

12.2.24.23. wordwrap

최대/최소 문자 개수로 행갈이한 문자열을 반환합니다.

문법

wordwrap(string, wrap_length, [delimiter_string])

[] 괄호는 부가적인 인자를 표시합니다

인자

  • string - 행갈이할 문자열

  • wrap_length - 정수. wrap_length가 양수인 경우 행갈이할 문자의 이상적인 최대 개수를 나타내는 숫자이고, 음수인 경우 행갈이할 문자의 최소 개수를 나타냅니다.

  • delimiter_string - 새 줄로 행갈이할 선택적인 구분자 문자열

예제

  • wordwrap('UNIVERSITY OF QGIS',13) → ‘UNIVERSITY OF<br>QGIS’

  • wordwrap('UNIVERSITY OF QGIS',-3) → ‘UNIVERSITY<br>OF QGIS’

12.2.25. 사용자 표현식

이 그룹은 사용자 표현식 으로 저장된 표현식들을 담고 있습니다.

12.2.26. 변수

이 그룹은 응용 프로그램, 프로젝트 파일 및 기타 설정과 관련된 동적 변수를 담고 있습니다. 즉 다음 맥락에 따라 일부 변수를 사용하지 못 할 수도 있다는 뜻입니다:

  • expressionSelect Select by expression 대화창에서

  • calculateField Field calculator 대화창에서

  • 레이어 속성 대화창에서

  • 인쇄 조판기에서

표현식에 다음 변수들을 사용하려면, 앞에 @ 문자를 (예: @row_number) 붙여야 합니다:

변수

설명

algorithm_id

알고리즘의 유일 ID

animation_end_time

애니메이션의 전체 시계열 시간 범위의 종단 (날짜&시간 값으로)

animation_interval

애니메이션의 전체 시계열 시간 범위의 기간 (간격 값으로)

animation_start_time

애니메이션의 전체 시계열 시간 범위의 시작 (날짜&시간 값으로)

atlas_feature

현재 지도 피처 (피처 객체로써)

atlas_featureid

현재 지도 피처 ID

atlas_featurenumber

현재 조판기에 있는 지도 피처의 번호

atlas_filename

현재 지도 파일명

atlas_geometry

현재 지도 피처 도형

atlas_layerid

현재 지도 커버리지 레이어 ID

atlas_layername

현재 지도 커버리지 레이어명

atlas_pagename

현재 지도 페이지 명칭

atlas_totalfeatures

지도에 있는 피처의 총 개수

canvas_cursor_point

캔버스 상에서의 프로젝트의 지리 좌표로 된 마지막 커서 위치

cluster_color

군집 내부 심볼의 색상, 또는 심볼이 혼합 색상인 경우 NULL값

cluster_size

군집 내부에 담겨 있는 심볼의 개수

current_feature

현재 속성 양식 또는 테이블 행에서 편집 중인 피처

current_geometry

현재 양식 또는 테이블 행에서 편집 중인 피처의 도형

current_parent_feature

부모 양식에서 현재 편집하고 있는 피처를 나타냅니다. 내장된 양식 맥락에서만 사용할 수 있습니다.

current_parent_geometry

부모 양식에서 현재 편집하고 있는 피처의 도형을 나타냅니다. 내장된 양식 맥락에서만 사용할 수 있습니다.

form_mode

양식이 사용되는 목적입니다. AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode 또는 IdentifyMode 같은 문자열로 입력합니다.

frame_duration

각 애니메이션 프레임의 시계열 기간 (간격 값으로)

frame_number

애니메이션 재생 시 현재 프레임 번호

frame_rate

애니메이션 재생 시 초당 프레임 개수

fullextent_maxx

(모든 레이어를 포함하는) 전체 캔버스 범위의 최대 X값

fullextent_maxy

(모든 레이어를 포함하는) 전체 캔버스 범위의 최대 Y값

fullextent_minx

(모든 레이어를 포함하는) 전체 캔버스 범위의 최소 X값

fullextent_miny

(모든 레이어를 포함하는) 전체 캔버스 범위의 최소 Y값

geometry_part_count

렌더링된 피처의 도형에 있는 부분의 개수

geometry_part_num

렌더링 중인 피처의 현재 도형 부분의 번호

geometry_point_count

렌더링된 도형의 부분에 있는 포인트의 개수

geometry_point_num

현재 렌더링된 도형의 부분에 있는 포인트의 번호

geometry_ring_num

Current geometry ring number for feature being rendered (for polygon features only). The exterior ring has a value of 0.

grid_axis

현재 그리드 주석 축 (예: 경도는 ‘x’, 위도는 ‘y’)

grid_number

현재 그리드 주석 값

item_id

조판기 항목 사용자 ID (유일해야 하는 것은 아닙니다)

item_uuid

조판기 항목 유일 ID

layer

현재 레이어

layer_crs NEW in 3.18

The Coordinate Reference System Authority ID of the current layer

layer_id

현재 레이어의 ID

layer_ids

현재 프로젝트에 있는 모든 맵 레이어의 ID 목록

layer_name

현재 레이어의 명칭

layers

현재 프로젝트에 있는 모든 맵 레이어의 목록

layout_dpi

조판 해상도(DPI)

layout_name

조판 명칭

layout_numpages

조판한 페이지 수

layout_page

조판기에 있는 현재 항목의 페이지 번호

layout_pageheight

The active page height in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

layout_pageoffsets

Array of Y coordinate of the top of each page. Allows to dynamically position items on pages in a context where page sizes may change

layout_pagewidth

The active page width in the layout (in mm for standard paper sizes, or whatever unit was used for custom paper size)

legend_column_count

범례에 있는 열의 개수

legend_filter_by_map

맵이 범례 내용을 필터링했는지 여부를 표시

legend_filter_out_atlas

범례에서 지도를 필터링했는지 여부를 표시

legend_split_layers

범례에서 레이어를 나눌 수 있는지 여부를 표시

legend_title

범례의 제목

legend_wrap_string

범례 텍스트 행갈이에 쓰이는 문자(들)

map_crs

현재 맵의 좌표계

map_crs_acronym

현재 맵 좌표계의 약어

map_crs_definition

현재 맵 좌표계의 완전한 정의

map_crs_description

현재 맵 좌표계의 명칭

map_crs_ellipsoid

현재 맵 좌표계 타원체의 약어

map_crs_proj4

현재 맵 좌표계의 PROJ4 정의

map_crs_projection NEW in 3.20

The descriptive name of the projection method used by the Coordinate reference system of the map (e.g. ‘Albers Equal Area’)

map_crs_wkt

현재 맵 좌표계의 WKT 정의

map_end_time

맵의 시계열 시간 범위의 종단 (날짜&시간 값으로)

map_extent

맵의 현재 범위를 표현하는 도형

map_extent_center

맵의 중앙에 있는 포인트 피처

map_extent_height

맵의 현재 높이

map_extent_width

맵의 현재 너비

map_id

현재 맵의 대상(destination) ID. 캔버스 렌더링인 경우 ‘canvas’, 조판기 맵 렌더링인 경우 해당 항목의 ID가 됩니다.

map_interval

맵의 시계열 시간 범위의 기간 (간격 값으로)

map_layer_ids

맵에 가시화된 맵 레이어의 ID 목록

map_layers

맵에 가시화된 맵 레이어의 목록

map_rotation

맵의 현재 기울기

map_scale

맵의 현재 축척

map_start_time

맵의 시계열 시간 범위의 시작 (날짜&시간 값으로)

map_units

맵 측정 단위

model_path

현재 모델의 (파일 이름 포함) 전체 경로 (또는 모델이 프로젝트에 내장된 경우 프로젝트 경로)

model_folder

현재 모델을 담고 있는 폴더 (또는 모델이 프로젝트에 내장된 경우 프로젝트 폴더)

model_name

현재 모델의 이름

model_group

현재 모델의 그룹

notification_message

제공자가 전송하는 알림 메시지의 내용 (제공자 알림이 촉발하는 액션에 대해서만 사용할 수 있습니다.)

parent

부모 레이어에 있는 현재 피처를 참조. 집계 함수를 필터링하는 경우 해당 피처의 속성 및 도형에 접근할 수 있습니다.

project_abstract

프로젝트 요약. 프로젝트 메타데이터에서 가져옵니다.

project_area_units

현재 프로젝트에서 쓰이는 면적 단위. 도형 면적 계산 시 사용됩니다.

project_author

프로젝트 저자. 프로젝트 메타데이터에서 가져옵니다.

project_basename

현재 프로젝트 파일명의 (경로 및 확장자를 제외한) 기본 명칭

project_creation_date

프로젝트 생성 날짜. 프로젝트 메타데이터에서 가져옵니다.

project_crs

프로젝트 좌표계

project_crs_arconym

프로젝트 좌표계의 약어

project_crs_definition

프로젝트 좌표계의 완전한 정의

project_crs_description

프로젝트 좌표계의 설명

project_crs_ellipsoid

프로젝트 좌표계의 타원체

project_crs_proj4

프로젝트 좌표계의 PROJ4 표현

project_crs_wkt

프로젝트 좌표계의 WKT 표현

project_distance_units

현재 프로젝트에서 쓰이는 거리 단위. 도형 및 거리의 길이 계산 시 사용됩니다.

project_ellipsoid

현재 프로젝트의 타원체 명칭. 측지(geodetic) 면적 또는 도형 길이 계산 시 사용됩니다.

project_filename

현재 프로젝트의 파일명

project_folder

현재 프로젝트가 있는 폴더

project_home

현재 프로젝트의 홈 경로

project_identifier

프로젝트 식별자. 프로젝트 메타데이터에서 가져옵니다.

project_keywords

프로젝트 키워드. 프로젝트 메타데이터에서 가져옵니다.

project_last_saved

프로젝트를 마지막으로 저장한 날짜&시간

project_path

현재 프로젝트의 (파일명을 포함한) 전체 경로

project_title

현재 프로젝트의 제목

project_units

프로젝트 좌표계의 단위

qgis_locale

QGIS의 현재 언어

qgis_os_name

현재 운영체제의 명칭을 반환 (예: ‘windows’, ‘linux’ 또는 ‘osx’)

qgis_platform

QGIS의 플랫폼 (예: ‘desktop’ 또는 ‘server’)

qgis_release_name

현재 QGIS 의 배포명

qgis_short_version

현재 QGIS의 버전 문자열 (ShortString 유형)

qgis_version

현재 QGIS의 버전 문자열

qgis_version_no

현재 QGIS의 버전 숫자

row_number

현재 행의 번호를 저장

snapping_results

피처 디지타이즈 작업 도중 스냅 작업 결과물에 접근 가능 (피처 추가 시에만 사용할 수 있습니다.)

scale_value

현재 축척 막대 거리 값

selected_file_path

Selected file path from file widget selector when uploading a file with an external storage system

symbol_angle

피처를 렌더링하는 데 쓰이는 심볼의 각도 (마커 심볼의 경우에만 유효합니다.)

symbol_color

피처를 렌더링하는 데 쓰이는 심볼의 색상

symbol_count

(조판기 범례에 표시되는) 심볼이 표현하는 피처의 개수

symbol_id

(조판기 범례에 표시되는) 심볼의 내부 ID

symbol_label

(사용자가 정의한 라벨 또는 기본 자동 생성된 라벨 가운데 하나로, 조판기 범례에 표시되는) 심볼 용 라벨

symbol_layer_count

심볼에 있는 심볼 레이어의 총 개수

symbol_layer_index

현재 심볼 레이어 인덱스

symbol_marker_column

마커에 대한 열 번호(포인트 패턴 채우기에 대해서만 유효합니다)

symbol_marker_row

마커에 대한 행 번호(포인트 패턴 채우기에 대해서만 유효합니다)

user_account_name

현재 사용자의 운영체제 계정명

user_full_name

현재 사용자의 운영체제 사용자명

value

현재 값

vector_tile_zoom

Exact vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20]. Unlike @zoom_level, this variable is a floating point value which can be used to interpolate values between two integer zoom levels.

with_variable

표현식 내부에서 활용하기 위한 변수를 설정할 수 있고, 동일한 값을 반복해서 재계산하는 일을 피할 수 있습니다.

zoom_level

Vector tile zoom level of the map that is being rendered (derived from the current map scale). Normally in interval [0, 20].

다음은 몇몇 예시입니다:

  • 조판기 중심에 있는 맵 항목의 X 좌표를 반환합니다:

    x( map_get( item_variables( 'map1'), 'map_extent_center' ) )
    
  • 현재 레이어에 있는 각 피처 별로, 피처와 중첩하는 공항 피처의 개수를 반환합니다:

    aggregate( layer:='airport', aggregate:='count', expression:="code",
                   filter:=intersects( $geometry, geometry( @parent ) ) )
    
  • 라인에서 첫번째로 스냅하는 포인트의 object_id를 가져옵니다:

    with_variable(
      'first_snapped_point',
      array_first( @snapping_results ),
      attribute(
        get_feature_by_id(
          map_get( @first_snapped_point, 'layer' ),
          map_get( @first_snapped_point, 'feature_id' )
        ),
        'object_id'
      )
    )
    

12.2.27. 최근 함수

이 그룹은 최근 사용한 함수를 담고 있습니다. 그 맥락에 따라 (피처 선택, 필드 계산기, 일반) 최근 적용된 표현식이 대응하는 목록에 (10개까지) 추가되며, 가장 최근에 사용한 함수가 맨 앞으로 오도록 정렬합니다. 이 목록을 통해 이전에 사용했던 표현식을 빠르게 찾아서 다시 적용할 수 있습니다.