- 카테고리:
ST_HAUSDORFFDISTANCE¶
두 GEOGRAPHY 오브젝트 간의 이산 하우스도르프 거리 를 반환합니다.
하우스도르프 거리는 두 오브젝트가 얼마나 유사한지 나타냅니다. 한 오브젝트의 각 점이 다른 오브젝트의 한 점에 가까우면 두 오브젝트는 유사한 것으로 간주됩니다. 하우스도르프 거리는 한 오브젝트의 점과 다른 오브젝트의 점 사이의 최대 거리입니다.
ST_HAUSDORFFDISTANCE는 꼭짓점(이산 점)만 비교하고, 가장자리를 따라 있는 임의의 점은 비교하지 않음으로써 계산되는 이산 하우스도르프 거리를 반환합니다.
구문¶
ST_HAUSDORFFDISTANCE( <geography_expression_1> , <geography_expression_2> )
인자¶
geography_expression_1
인자는 GEOGRAPHY 형식의 식이어야 합니다.
geography_expression_2
인자는 GEOGRAPHY 형식의 식이어야 합니다.
반환¶
이산 하우스도르프 거리를 도 단위로 나타내는 REAL 형식의 값을 반환합니다.
사용법 노트¶
입력 지점 중 하나 이상이 NULL인 경우, NULL을 반환합니다.
예¶
이 예는 두 점(점 0 0
및 점 0 1
) 사이의 하우스도르프 거리를 반환합니다.
SELECT ST_HAUSDORFFDISTANCE(ST_POINT(0, 0), ST_POINT(0, 1)); +------------------------------------------------------+ | ST_HAUSDORFFDISTANCE(ST_POINT(0, 0), ST_POINT(0, 1)) | |------------------------------------------------------| | 1 | +------------------------------------------------------+
다음 예는 세 Polygon(a
, b
, c
)을 비교합니다.
a
및 c
에서 가장 먼 점(점 0 1
및 점 0 3
) 사이의 거리는 a
및 b
에서 가장 먼 점(점 1 0
및 점 2 0
) 사이의 거리보다 큽니다.
결과적으로, ST_HAUSDORFFDISTANCE에 의해 반환된 값은 a
및 c
쪽이 더 작습니다. 이는 a
및 c
가 a
및 b
보다 더 유사함을 나타냅니다.
WITH a AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 1, 1 0, 0 -1, -1 0))')), b AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 1, 2 0, 0 -1, -1 0))')), c AS (TO_GEOGRAPHY('POLYGON((-1 0, 0 3, 1 0, 0 -1, -1 0))')) SELECT ST_HAUSDORFFDISTANCE(a, b) as distance_between_a_and_b, ST_HAUSDORFFDISTANCE(a, c) as distance_between_a_and_c; +--------------------------+--------------------------+ | DISTANCE_BETWEEN_A_AND_B | DISTANCE_BETWEEN_A_AND_C | |--------------------------+--------------------------| | 1 | 2 | +--------------------------+--------------------------+