H3 함수

H3 함수 (H3 Functions)

H3는 지구 표면을 균일한 육각형 셀 격자로 나누는 지리 인덱싱 시스템이에요. 이 시스템은 계층적이라서, 최상위 레벨("부모")의 각 육각형은 7개의 더 작은 균일한 육각형("자식")으로 나눌 수 있고, 계속 반복돼요.

계층의 레벨을 resolution(해상도)이라고 하며 0부터 15까지 값을 가질 수 있어요. 0은 셀이 가장 크고 거친 base 레벨이에요.

위도·경도 쌍은 격자 셀을 식별하는 64비트 H3 인덱스로 변환할 수 있어요.

H3 인덱스는 주로 위치 버킷팅과 다른 지리공간 조작에 사용돼요.

H3 시스템의 전체 설명은 Uber Engineering 사이트에서 볼 수 있어요.

출처: 문서

본문

h3IsValid

숫자가 유효한 H3 인덱스인지 확인해요.

구문 (Syntax)

h3IsValid(h3index)

매개변수 (Parameter)

  • h3index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned values)

  • 1 — 숫자가 유효한 H3 인덱스임. UInt8.
  • 0 — 숫자가 유효한 H3 인덱스가 아님. UInt8.

예시 (Example)

SELECT h3IsValid(630814730351855103) AS h3IsValid;
┌─h3IsValid─┐
│         1 │
└───────────┘

h3GetResolution

주어진 H3 인덱스의 해상도를 정의해요.

구문 (Syntax)

h3GetResolution(h3index)

매개변수 (Parameter)

  • h3index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned values)

  • 인덱스 해상도. 범위: [0, 15]. UInt8.
  • 인덱스가 유효하지 않으면 함수는 임의 값을 반환해요. 인덱스 검증에는 h3IsValid를 사용하세요. UInt8.

예시 (Example)

SELECT h3GetResolution(639821929606596015) AS resolution;
┌─resolution─┐
│         14 │
└────────────┘

h3EdgeAngle

H3 육각형 변의 평균 길이를 도(grade) 단위로 계산해요.

구문 (Syntax)

h3EdgeAngle(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. UInt8. 범위: [0, 15].

반환 값 (Returned values)

  • H3 육각형 변의 평균 길이(도). Float64.

예시 (Example)

SELECT h3EdgeAngle(10) AS edgeAngle;
┌───────h3EdgeAngle(10)─┐
│ 0.0005927224846720883 │
└───────────────────────┘

h3EdgeLengthM

H3 육각형 변의 평균 길이를 미터 단위로 계산해요.

구문 (Syntax)

h3EdgeLengthM(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. UInt8. 범위: [0, 15].

반환 값 (Returned values)

  • H3 육각형 변의 평균 길이(미터). Float64.

예시 (Example)

SELECT h3EdgeLengthM(15) AS edgeLengthM;
┌─edgeLengthM─┐
│ 0.509713273 │
└─────────────┘

h3EdgeLengthKm

H3 육각형 변의 평균 길이를 킬로미터 단위로 계산해요.

구문 (Syntax)

h3EdgeLengthKm(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. UInt8. 범위: [0, 15].

반환 값 (Returned values)

  • H3 육각형 변의 평균 길이(킬로미터). Float64.

예시 (Example)

SELECT h3EdgeLengthKm(15) AS edgeLengthKm;
┌─edgeLengthKm─┐
│  0.000509713 │
└──────────────┘

geoToH3

지정된 해상도의 점 인덱스 (lat, lon)을 반환해요.

구문 (Syntax)

geoToH3(lat, lon, resolution)

인자 (Arguments)

  • lat — 위도. Float64.
  • lon — 경도. Float64.
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned values)

  • 육각형 인덱스 번호. UInt64.
  • 오류 시 0. UInt64.

참고: ClickHouse v25.4 이하에서는 geoToH3()(lon, lat) 순서로 값을 받아요. v25.5부터는 입력 값 순서가 (lat, lon)이에요. 이전 동작은 설정 geotoh3_argument_order = 'lon_lat'로 복원할 수 있어요.

예시 (Example)

SELECT geoToH3(55.71290588, 37.79506683, 15) AS h3Index;
┌────────────h3Index─┐
│ 644325524701193974 │
└────────────────────┘

h3ToGeo

제공된 H3 인덱스에 해당하는 중심(centroid) 위도·경도를 반환해요.

구문 (Syntax)

h3ToGeo(h3Index)

인자 (Arguments)

  • h3Index — H3 인덱스. UInt64.

반환 값 (Returned values)

  • 두 값으로 이뤄진 튜플: tuple(lat,lon). lat — 위도. Float64. lon — 경도. Float64.

참고: ClickHouse v24.12 이하에서는 h3ToGeo()(lon, lat) 순서로 값을 반환해요. v25.1부터 반환 값 순서는 (lat, lon)이에요. 이전 동작은 설정 h3togeo_lon_lat_result_order = true로 복원할 수 있어요.

예시 (Example)

SELECT h3ToGeo(644325524701193974) AS coordinates;
┌─coordinates───────────────────────────┐
│ (55.71290243145668,37.79506616830252) │
└───────────────────────────────────────┘

h3ToGeoBoundary

제공된 H3 인덱스의 경계에 해당하는 (lat, lon) 쌍의 배열을 반환해요.

구문 (Syntax)

h3ToGeoBoundary(h3Index)

인자 (Arguments)

  • h3Index — H3 인덱스. UInt64.

반환 값 (Returned values)

  • '(lat, lon)' 쌍의 배열. Array(Float64, Float64).

예시 (Example)

SELECT h3ToGeoBoundary(644325524701193974) AS coordinates;
┌─h3ToGeoBoundary(599686042433355775)────────────────────────────────────────────────────────┐
│ [(37.2713558667319,-121.91508032705622),(37.353926450852256,-121.8622232890249),(37.42834118609435,-121.92354999630156),(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044),(37.26319797461824,-122.02910130919001)] │
└────────────────────────────────────────────────────────────────────────────────────────────┘

h3kRing

주어진 육각형에서 반경 k 안에 있는 모든 H3 육각형을 무작위 순서로 나열해요.

구문 (Syntax)

h3kRing(h3index, k)

인자 (Arguments)

  • h3index — 육각형 인덱스 번호. UInt64.
  • k — 반경. 정수.

반환 값 (Returned values)

  • H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT arrayJoin(h3kRing(644325529233966508, 1)) AS h3index;
┌────────────h3index─┐
│ 644325529233966508 │
│ 644325529233966497 │
│ 644325529233966510 │
│ 644325529233966504 │
│ 644325529233966509 │
│ 644325529233966355 │
│ 644325529233966354 │
└────────────────────┘

h3PolygonToCells

제공된 형상(링 또는 (멀티)폴리곤)이 담고 있는 (지정된 해상도의) 육각형들을 반환해요. 형상이 셀의 중심을 담고 있을 때 육각형이 담긴 것으로 보는데, 이는 polyfill의 포함 모드 0이에요.

형상의 모든 정점은 구 위에 있어야 해요: 경도는 [-180, 180], 위도는 [-90, 90]도 범위. 반환된 셀의 순서는 보장되지 않으므로 순서가 중요하면 배열을 정렬하세요.

구문 (Syntax)

h3PolygonToCells(geometry, resolution)

인자 (Arguments)

  • geometry는 다음 Geo 데이터 타입 중 하나 또는 그 기본 원시 타입이 될 수 있어요:
    • Ring
    • Polygon
    • MultiPolygon
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned values)

  • 담긴 H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT h3PolygonToCells([(-122.4089866999972145,37.813318999983238),(-122.3544736999993603,37.7198061999978478),(-122.4798767000009008,37.8151571999998453)], 7) AS h3index;
┌────────────h3index─┐
│ 608692970585063423 │
│ 608692970719281151 │
│ 608692970752835583 │
│ 608692970769612799 │
│ 608692970819944447 │
│ 608692971927240703 │
│ 608692972027903999 │
└────────────────────┘

h3PolygonToCellsWithContainment

H3 실험적 포함 모드를 사용해 제공된 형상(링 또는 (멀티)폴리곤)을 덮는 (지정된 해상도의) 육각형들을 반환해요.

형상의 모든 정점은 구 위에 있어야 해요: 경도는 [-180, 180], 위도는 [-90, 90]도 범위. 반환된 셀의 순서는 보장되지 않으므로 순서가 중요하면 배열을 정렬하세요.

이 함수는 flags를 H3 포함 모드에 매핑해요:

  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX

구문 (Syntax)

h3PolygonToCellsWithContainment(geometry, resolution, flags)

인자 (Arguments)

  • geometry는 다음 Geo 데이터 타입 중 하나 또는 그 기본 원시 타입이 될 수 있어요:
    • Ring
    • Polygon
    • MultiPolygon
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.
  • flags — 포함 모드. 범위: [0, 3]. 0, 1, 2, 3 같은 정수 리터럴이나 UInt32 값(예: toUInt32(2))을 사용해요. 값은 UInt32로 H3 API에 전달돼요. 다른 네이티브 정수 타입은 정확한 캐스트로 변환돼요.

반환 값 (Returned values)

  • 선택된 포함 모드에 따른 H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT
    h3PolygonToCellsWithContainment([(-122.4089866999972145, 37.813318999983238), (-122.3544736999993603, 37.7198061999978478), (-122.4798767000009008, 37.8151571999998453)], 7, 0) AS center_cells,
    h3PolygonToCellsWithContainment([(-122.4089866999972145, 37.813318999983238), (-122.3544736999993603, 37.7198061999978478), (-122.4798767000009008, 37.8151571999998453)], 7, 2) AS overlap_cells;
   ┌─center_cells───────────────────────────────────────────────────────────┬─overlap_cells──────────────────────────────────────────────────────────────────────────────┐
1. │ [608692970585063423,608692970719281151,608692970752835583,608692970769612799,608692970819944447,608692971927240703,608692972027903999] │ [608692970249519103,608692970266296319,608692970585063423,608692970601840639,608692970635395071,608692970685726719,608692970719281151,608692970736058367,608692970752835583,608692970769612799,608692970786390015,608692970819944447,608692971927240703,608692971994349567,608692972027903999] │
   └────────────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────┘

h3GetBaseCell

H3 인덱스의 베이스 셀 번호를 반환해요.

구문 (Syntax)

h3GetBaseCell(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 육각형 베이스 셀 번호. UInt8.

예시 (Example)

SELECT h3GetBaseCell(612916788725809151) AS basecell;
┌─basecell─┐
│       12 │
└──────────┘

h3HexAreaM2

주어진 해상도에서 평균 육각형 면적을 제곱미터로 반환해요.

구문 (Syntax)

h3HexAreaM2(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned value)

  • 제곱미터 단위 면적. Float64.

예시 (Example)

SELECT h3HexAreaM2(13) AS area;
┌─area─┐
│ 43.9 │
└──────┘

h3HexAreaKm2

주어진 해상도에서 평균 육각형 면적을 제곱킬로미터로 반환해요.

구문 (Syntax)

h3HexAreaKm2(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned value)

  • 제곱킬로미터 단위 면적. Float64.

예시 (Example)

SELECT h3HexAreaKm2(13) AS area;
┌──────area─┐
│ 0.0000439 │
└───────────┘

h3IndexesAreNeighbors

제공된 H3 인덱스들이 이웃인지 여부를 반환해요.

구문 (Syntax)

h3IndexesAreNeighbors(index1, index2)

인자 (Arguments)

  • index1 — 육각형 인덱스 번호. UInt64.
  • index2 — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 1 — 인덱스들이 이웃임. UInt8.
  • 0 — 인덱스들이 이웃이 아님. UInt8.

예시 (Example)

SELECT h3IndexesAreNeighbors(617420388351344639, 617420388352655359) AS n;
┌─n─┐
│ 1 │
└───┘

h3ToChildren

주어진 H3 인덱스의 자식 인덱스 배열을 반환해요.

구문 (Syntax)

h3ToChildren(index, resolution)

인자 (Arguments)

  • index — 육각형 인덱스 번호. UInt64.
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned values)

  • 자식 H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT h3ToChildren(599405990164561919, 6) AS children;
┌─children───────────────────────────────────────────────────────────────────────────────┐
│ [603909588852408319,603909588986626047,603909589120843775,603909589255061503,603909589389279231,603909589523496959,603909589657714687] │
└────────────────────────────────────────────────────────────────────────────────────────┘

h3ToParent

주어진 H3 인덱스를 담고 있는 부모(더 거친) 인덱스를 반환해요.

구문 (Syntax)

h3ToParent(index, resolution)

인자 (Arguments)

  • index — 육각형 인덱스 번호. UInt64.
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned value)

  • 부모 H3 인덱스. UInt64.

예시 (Example)

SELECT h3ToParent(599405990164561919, 3) AS parent;
┌─────────────parent─┐
│ 590398848891879423 │
└────────────────────┘

h3ToString

인덱스의 H3Index 표현을 문자열 표현으로 변환해요.

h3ToString(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • H3 인덱스의 문자열 표현. String.

예시 (Example)

SELECT h3ToString(617420388352917503) AS h3_string;
┌─h3_string───────┐
│ 89184926cdbffff │
└─────────────────┘

stringToH3

문자열 표현을 H3Index(UInt64) 표현으로 변환해요.

구문 (Syntax)

stringToH3(index_str)

매개변수 (Parameter)

  • index_str — H3 인덱스의 문자열 표현. String.

반환 값 (Returned value)

  • 육각형 인덱스 번호. 오류 시 0. UInt64.

예시 (Example)

SELECT stringToH3('89184926cc3ffff') AS index;
┌──────────────index─┐
│ 617420388351344639 │
└────────────────────┘

h3GetResolution

H3 인덱스의 해상도를 반환해요.

구문 (Syntax)

h3GetResolution(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 인덱스 해상도. 범위: [0, 15]. UInt8.

예시 (Example)

SELECT h3GetResolution(617420388352917503) AS res;
┌─res─┐
│   9 │
└─────┘

h3IsResClassIII

H3 인덱스가 Class III 방향의 해상도를 갖는지 여부를 반환해요.

구문 (Syntax)

h3IsResClassIII(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 1 — 인덱스가 Class III 방향의 해상도를 가짐. UInt8.
  • 0 — 인덱스가 Class III 방향의 해상도를 갖지 않음. UInt8.

예시 (Example)

SELECT h3IsResClassIII(617420388352917503) AS res;
┌─res─┐
│   1 │
└─────┘

h3IsPentagon

이 H3 인덱스가 오각형 셀을 나타내는지 여부를 반환해요.

구문 (Syntax)

h3IsPentagon(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 1 — 인덱스가 오각형 셀을 나타냄. UInt8.
  • 0 — 인덱스가 오각형 셀을 나타내지 않음. UInt8.

예시 (Example)

SELECT h3IsPentagon(644721767722457330) AS pentagon;
┌─pentagon─┐
│        0 │
└──────────┘

h3GetFaces

주어진 H3 인덱스와 교차하는 정이십면체(icosahedron) 면들을 반환해요.

구문 (Syntax)

h3GetFaces(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned values)

  • 주어진 H3 인덱스와 교차하는 정이십면체 면을 담은 배열. Array(UInt64).

예시 (Example)

SELECT h3GetFaces(599686042433355775) AS faces;
┌─faces─┐
│ [7]   │
└───────┘

h3CellAreaM2

주어진 입력 H3 인덱스에 해당하는 특정 셀의 정확한 면적을 제곱미터로 반환해요.

구문 (Syntax)

h3CellAreaM2(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 제곱미터 단위 셀 면적. Float64.

예시 (Example)

SELECT h3CellAreaM2(579205133326352383) AS area;
┌───────────────area─┐
│ 4106166334463.9233 │
└────────────────────┘

h3CellAreaRads2

주어진 입력 H3 인덱스에 해당하는 특정 셀의 정확한 면적을 제곱 라디안으로 반환해요.

구문 (Syntax)

h3CellAreaRads2(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 제곱 라디안 단위 셀 면적. Float64.

예시 (Example)

SELECT h3CellAreaRads2(579205133326352383) AS area;
┌────────────────area─┐
│ 0.10116268528089567 │
└─────────────────────┘

h3ToCenterChild

주어진 H3 인덱스가 주어진 해상도에서 담고 있는 중심 자식(더 정밀한) 인덱스를 반환해요.

구문 (Syntax)

h3ToCenterChild(index, resolution)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.
  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned values)

  • 주어진 해상도에서 주어진 인덱스가 담고 있는 중심 자식의 인덱스. UInt64.

예시 (Example)

SELECT h3ToCenterChild(577023702256844799,1) AS centerToChild;
┌──────centerToChild─┐
│ 581496515558637567 │
└────────────────────┘

h3ExactEdgeLengthM

입력 h3 인덱스가 나타내는 단방향 변(unidirectional edge)의 정확한 길이를 미터로 반환해요.

구문 (Syntax)

h3ExactEdgeLengthM(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 미터 단위 정확한 변 길이. Float64.

예시 (Example)

SELECT round(h3ExactEdgeLengthM(1310277011704381439), 6) AS exactEdgeLengthM;
┌─exactEdgeLengthM─┐
│    195449.631634 │
└──────────────────┘

h3ExactEdgeLengthKm

입력 h3 인덱스가 나타내는 단방향 변의 정확한 길이를 킬로미터로 반환해요.

구문 (Syntax)

h3ExactEdgeLengthKm(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 킬로미터 단위 정확한 변 길이. Float64.

예시 (Example)

SELECT round(h3ExactEdgeLengthKm(1310277011704381439), 8) AS exactEdgeLengthKm;
┌─exactEdgeLengthKm─┐
│      195.44963163 │
└───────────────────┘

h3ExactEdgeLengthRads

입력 h3 인덱스가 나타내는 단방향 변의 정확한 길이를 라디안으로 반환해요.

구문 (Syntax)

h3ExactEdgeLengthRads(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 라디안 단위 정확한 변 길이. Float64.

예시 (Example)

SELECT round(h3ExactEdgeLengthRads(1310277011704381439), 12) AS exactEdgeLengthRads;
┌─exactEdgeLengthRads─┐
│      0.030677980119 │
└─────────────────────┘

h3NumHexagons

주어진 해상도에서 고유한 H3 인덱스의 개수를 반환해요.

구문 (Syntax)

h3NumHexagons(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned value)

  • H3 인덱스 개수. Int64.

예시 (Example)

SELECT h3NumHexagons(3) AS numHexagons;
┌─numHexagons─┐
│       41162 │
└─────────────┘

h3PointDistM

GeoCoord 점(위도/경도) 쌍들 사이의 "대원(great circle)" 또는 "하버사인(haversine)" 거리를 미터로 반환해요.

구문 (Syntax)

h3PointDistM(lat1, lon1, lat2, lon2)

인자 (Arguments)

  • lat1, lon1 — 점1의 위도·경도(도). Float64.
  • lat2, lon2 — 점2의 위도·경도(도). Float64.

반환 값 (Returned values)

  • 미터 단위 하버사인 또는 대원 거리. Float64.

예시 (Example)

SELECT h3PointDistM(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistM;
┌───────h3PointDistM─┐
│ 2223901.0395045886 │
└────────────────────┘

h3PointDistKm

GeoCoord 점(위도/경도) 쌍들 사이의 "대원" 또는 "하버사인" 거리를 킬로미터로 반환해요.

구문 (Syntax)

h3PointDistKm(lat1, lon1, lat2, lon2)

인자 (Arguments)

  • lat1, lon1 — 점1의 위도·경도(도). Float64.
  • lat2, lon2 — 점2의 위도·경도(도). Float64.

반환 값 (Returned values)

  • 킬로미터 단위 하버사인 또는 대원 거리. Float64.

예시 (Example)

SELECT h3PointDistKm(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistKm;
┌──────h3PointDistKm─┐
│ 2223.9010395045884 │
└────────────────────┘

h3PointDistRads

GeoCoord 점(위도/경도) 쌍들 사이의 "대원" 또는 "하버사인" 거리를 라디안으로 반환해요.

구문 (Syntax)

h3PointDistRads(lat1, lon1, lat2, lon2)

인자 (Arguments)

  • lat1, lon1 — 점1의 위도·경도(도). Float64.
  • lat2, lon2 — 점2의 위도·경도(도). Float64.

반환 값 (Returned values)

  • 라디안 단위 하버사인 또는 대원 거리. Float64.

예시 (Example)

SELECT h3PointDistRads(-10.0 ,0.0, 10.0, 0.0) AS h3PointDistRads;
┌────h3PointDistRads─┐
│ 0.3490658503988659 │
└────────────────────┘

h3GetRes0Indexes

해상도 0의 모든 H3 인덱스 배열을 반환해요.

구문 (Syntax)

h3GetRes0Indexes()

반환 값 (Returned values)

  • 해상도 0의 모든 H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT h3GetRes0Indexes AS indexes ;
┌─indexes─────────────────────────────────────┐
│ [576495936675512319,576531121047601151,....]│
└─────────────────────────────────────────────┘

h3GetPentagonIndexes

지정된 해상도의 모든 오각형 H3 인덱스를 반환해요.

구문 (Syntax)

h3GetPentagonIndexes(resolution)

매개변수 (Parameter)

  • resolution — 인덱스 해상도. 범위: [0, 15]. UInt8.

반환 값 (Returned value)

  • 모든 오각형 H3 인덱스 배열. Array(UInt64).

예시 (Example)

SELECT h3GetPentagonIndexes(3) AS indexes;
┌─indexes────────────────────────────────────────┐
│ [590112357393367039,590464201114255359,590816044835143679,...] │
└────────────────────────────────────────────────┘

h3Line

제공된 두 인덱스 사이의 인덱스 라인을 반환해요.

구문 (Syntax)

h3Line(start,end)

매개변수 (Parameter)

  • start — 시작점을 나타내는 육각형 인덱스 번호. UInt64.
  • end — 끝점을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

제공된 두 인덱스 사이의 인덱스 라인을 나타내는 h3 인덱스 배열. Array(UInt64).

예시 (Example)

 SELECT h3Line(590080540275638271,590103561300344831) AS indexes;
┌─indexes────────────────────────────────────────────────────────────────────────┐
│ [590080540275638271,590080471556161535,590080883873021951,590106516237844479,590104385934065663,590103630019821567,590103561300344831] │
└────────────────────────────────────────────────────────────────────────────────┘

h3Distance

제공된 두 인덱스 사이의 격자 셀 단위 거리를 반환해요.

구문 (Syntax)

h3Distance(start,end)

매개변수 (Parameter)

  • start — 시작점을 나타내는 육각형 인덱스 번호. UInt64.
  • end — 끝점을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 격자 셀 수. Int64.

거리 계산에 실패하면 음수를 반환해요.

예시 (Example)

 SELECT h3Distance(590080540275638271,590103561300344831) AS distance;
┌─distance─┐
│        6 │
└──────────┘

h3HexRing

제공된 원점 h3Index를 중심으로 반경 k인 육각형 링의 인덱스들을 반환해요.

오각형 왜곡이 없으면 0을 반환해요.

구문 (Syntax)

h3HexRing(index, k)

매개변수 (Parameter)

  • index — 원점을 나타내는 육각형 인덱스 번호. UInt64.
  • k — 거리. UInt64.

반환 값 (Returned values)

  • H3 인덱스 배열. Array(UInt64).

예시 (Example)

 SELECT h3HexRing(590080540275638271, toUInt16(1)) AS hexRing;
┌─hexRing─────────────────────────────────────────────────────────────────────────┐
│ [590080815153545215,590080471556161535,590080677714591743,590077585338138623,590077447899185151,590079509483487231] │
└─────────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdge

서로 인접한 두 H3 셀 인덱스(원점과 목적지)에 대한 단방향 변 H3 인덱스를 반환해요. 입력 중 하나가 유효한 H3 셀이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어). 유효한 셀이지만 이웃이 아니면(같은 셀을 두 번 주는 경우 포함) 0을 반환해요.

구문 (Syntax)

h3GetUnidirectionalEdge(originIndex, destinationIndex)

매개변수 (Parameter)

  • originIndex — 원점 육각형 인덱스 번호. UInt64.
  • destinationIndex — 목적지 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 단방향 변 육각형 인덱스 번호. UInt64.

예시 (Example)

 SELECT h3GetUnidirectionalEdge(599686042433355775, 599686043507097599) AS edge;
┌────────────────edge─┐
│ 1248204388774707199 │
└─────────────────────┘

h3UnidirectionalEdgeIsValid

제공된 H3Index가 유효한 단방향 변 인덱스인지 판별해요. 단방향 변이면 1, 아니면 0을 반환해요.

구문 (Syntax)

h3UnidirectionalEdgeIsValid(index)

매개변수 (Parameter)

  • index — 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 1 — H3 인덱스가 유효한 단방향 변임. UInt8.
  • 0 — H3 인덱스가 유효한 단방향 변이 아님. UInt8.

예시 (Example)

 SELECT h3UnidirectionalEdgeIsValid(1248204388774707199) AS validOrNot;
┌─validOrNot─┐
│          1 │
└────────────┘

h3GetOriginIndexFromUnidirectionalEdge

단방향 변 H3Index에서 원점 육각형 인덱스를 반환해요. 입력이 유효한 방향 변이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어); 해당 설정이 켜져 있을 때만 0을 반환해요.

구문 (Syntax)

h3GetOriginIndexFromUnidirectionalEdge(edge)

매개변수 (Parameter)

  • edge — 단방향 변을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 원점 육각형 인덱스 번호. UInt64.
  • 기본적으로 유효하지 않은 방향 변에서 INCORRECT_DATA를 던지고, functions_h3_default_if_invalid = 1이면 0을 반환해요.

예시 (Example)

 SELECT h3GetOriginIndexFromUnidirectionalEdge(1248204388774707199) AS origin;
┌─────────────origin─┐
│ 599686042433355775 │
└────────────────────┘

h3GetDestinationIndexFromUnidirectionalEdge

단방향 변 H3Index에서 목적지 육각형 인덱스를 반환해요. 입력이 유효한 방향 변이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어); 해당 설정이 켜져 있을 때만 0을 반환해요.

구문 (Syntax)

h3GetDestinationIndexFromUnidirectionalEdge(edge)

매개변수 (Parameter)

  • edge — 단방향 변을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 목적지 육각형 인덱스 번호. UInt64.
  • 기본적으로 유효하지 않은 방향 변에서 INCORRECT_DATA를 던지고, functions_h3_default_if_invalid = 1이면 0을 반환해요.

예시 (Example)

 SELECT h3GetDestinationIndexFromUnidirectionalEdge(1248204388774707199) AS destination;
┌────────destination─┐
│ 599686043507097599 │
└────────────────────┘

h3GetIndexesFromUnidirectionalEdge

주어진 단방향 변 H3Index에서 원점과 목적지 육각형 인덱스를 반환해요.

구문 (Syntax)

h3GetIndexesFromUnidirectionalEdge(edge)

매개변수 (Parameter)

  • edge — 단방향 변을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

두 값 tuple(origin,destination)으로 이뤄진 튜플:

  • origin — 원점 육각형 인덱스 번호. UInt64.
  • destination — 목적지 육각형 인덱스 번호. UInt64.

제공된 입력이 유효한 방향 변이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어); 해당 설정이 켜져 있을 때만 (0,0)을 반환해요.

예시 (Example)

 SELECT h3GetIndexesFromUnidirectionalEdge(1248204388774707199) AS indexes;
┌─indexes─────────────────────────────────┐
│ (599686042433355775,599686043507097599) │
└─────────────────────────────────────────┘

h3GetUnidirectionalEdgesFromHexagon

제공된 H3Index에서 모든 단방향 변을 제공해요. 입력이 유효한 H3 셀이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어); 해당 설정이 켜져 있을 때만 빈 배열을 반환해요.

구문 (Syntax)

h3GetUnidirectionalEdgesFromHexagon(index)

매개변수 (Parameter)

  • index — 셀을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • 각 단방향 변을 나타내는 h3 인덱스 배열. Array(UInt64).
  • 기본적으로 유효하지 않은 셀에서 INCORRECT_DATA를 던지고, functions_h3_default_if_invalid = 1이면 []를 반환해요.

예시 (Example)

 SELECT h3GetUnidirectionalEdgesFromHexagon(599686042433355775) AS edges;
┌─edges─────────────────────────────────────────────────────────────────────────┐
│ [1248204388774707199,1320261982812635135,1392319576850563071,1464377170888491007,1536434764926418943,1608492358964346879] │
└───────────────────────────────────────────────────────────────────────────────┘

h3GetUnidirectionalEdgeBoundary

단방향 변을 정의하는 좌표를 반환해요. 입력이 유효한 방향 변이 아니면 예외를 던져요(functions_h3_default_if_invalid 설정이 제어); 해당 설정이 켜져 있을 때만 빈 배열을 반환해요.

구문 (Syntax)

h3GetUnidirectionalEdgeBoundary(index)

매개변수 (Parameter)

  • index — 단방향 변을 나타내는 육각형 인덱스 번호. UInt64.

반환 값 (Returned value)

  • '(lat, lon)' 쌍의 배열. Array(Float64, Float64).
  • 기본적으로 유효하지 않은 방향 변에서 INCORRECT_DATA를 던지고, functions_h3_default_if_invalid = 1이면 []를 반환해요.

예시 (Example)

 SELECT h3GetUnidirectionalEdgeBoundary(1248204388774707199) AS boundary;
┌─boundary────────────────────────────────────────────────────────┐
│ [(37.42012867767779,-122.03773496427027),(37.33755608435299,-122.090428929044)] │
└─────────────────────────────────────────────────────────────────┘

더 알아보기 (Learn more)