다음을 통해 공유


h3_try_distance 기능

적용 대상: 예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime 13.3 LTS 이상

이 함수는 동일한 해상도의 두 입력 H3 셀 ID 사이의 그리드 거리가 정의되지 않은 경우 NULL이 오류 대신 반환된다는 점을 제외하고 h3_distance 유사하게 동작합니다. 특히 동일한 해상도로 예상되는 두 입력 H3 셀 ID의 그리드 거리 또는 거리가 정의되지 않은 경우 NULL을 반환합니다.

구문

h3_try_distance ( h3CellId1Expr, h3CellId2Expr )

인수

  • h3CellId1Expr: BIGINT 식 또는 H3 셀 ID를 나타내는 16진수 STRING 식입니다.
  • h3CellId2Expr: BIGINT 식 또는 H3 셀 ID를 나타내는 16진수 STRING 식입니다.

반품

동일한 해상도를 가질 것으로 예상되는 두 입력 H3 셀의 그리드 거리인 BIGINT 값이거나, 거리가 정의되지 않은 경우 NULL입니다.

입력 식이 NULL인 경우 함수는 NULL을 반환합니다. 입력 인수의 유효성을 부분적으로 검사하여 유효한 H3 셀 ID를 나타내는지 확인합니다. 유효한 H3 ID에 대한 필수 조건이지만 충분하지 않은 조건은 해당 값이 사이 0x08001fffffffffff 이고 0x08ff3b6db6db6db6. 두 입력 셀 ID 중 하나라도 유효한 셀 ID가 아니면 함수의 동작이 정의되지 않습니다.

오류 조건

  • h3CellId1Expr 또는 h3CellId2Expr이 BIGINT로 변환할 수 없는 STRING이거나 0x08001fffffffffff보다 작거나 0x08ff3b6db6db6db6보다 큰 BIGINT 값에 해당하는 경우 함수는 H3_INVALID_CELL_ID를 반환합니다.
  • 두 입력 H3 셀의 해상도가 다르면 함수는 H3_UNDEFINED_GRID_DISTANCE 반환합니다.
  • 동일한 해상도의 두 H3 셀 사이의 그리드 거리가 정의되지 않은 경우 함수는 NULL을 반환합니다. 그리드 거리는 다음과 같은 이유로 정의되지 않을 수 있습니다.
    • 두 개의 입력 H3 셀 중 하나는 오각형 셀입니다.
    • 두 개의 H3 세포는 오각형 셀로 분리되어 있습니다.
    • 두 H3 셀이 서로 너무 멀리 떨어져 있습니다.

예제

-- Example where the two arguments are BIGINTs representing H3 cells.
> SELECT h3_distance(599686030622195711, 599686015589810175);
 2

-- Example where the two arguments are hexadecimal STRINGs representing H3 cells.
> SELECT h3_distance('85283447fffffff', '8528340ffffffff')
 2

-- Example of two cells that too far apart from each other.
> SELECT h3_distance(h3_longlatash3(-120, 45, 13), h3_longlatash3(120, 45, 13))
 NULL

-- Example of two cells with different resolutions.
> SELECT h3_distance(h3_longlatash3(120, 45, 13), h3_longlatash3(120, 45, 12));
  [H3_UNDEFINED_GRID_DISTANCE] H3 grid distance between 635869868887430591 and 631366269260060159 is undefined

-- First cell ID is a pentagon.
> SELECT h3_distance(590112357393367039, 590678880759578623)
 NULL

-- Distance between two hexagons separated by a pentagon.
> SELECT h3_distance(590112494832320511, 590112632271273983)
 NULL