카테고리:

지리 공간 함수

ST_HAUSDORFFDISTANCE

Returns the discrete Hausdorff distance between two GEOGRAPHY objects.

하우스도르프 거리는 두 오브젝트가 얼마나 유사한지 나타냅니다. 한 오브젝트의 각 점이 다른 오브젝트의 한 점에 가까우면 두 오브젝트는 유사한 것으로 간주됩니다. 하우스도르프 거리는 한 오브젝트의 점과 다른 오브젝트의 점 사이의 최대 거리입니다.

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)을 비교합니다.

ac 에서 가장 먼 점(점 0 1 및 점 0 3) 사이의 거리는 ab 에서 가장 먼 점(점 1 0 및 점 2 0) 사이의 거리보다 큽니다.

결과적으로, ST_HAUSDORFFDISTANCE에 의해 반환된 값은 ac 쪽이 더 작습니다. 이는 acab 보다 더 유사함을 나타냅니다.

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 |
+--------------------------+--------------------------+
맨 위로 이동