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 포함 모드에 매핑해요:
0—CONTAINMENT_CENTER1—CONTAINMENT_FULL2—CONTAINMENT_OVERLAPPING3—CONTAINMENT_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)] │
└─────────────────────────────────────────────────────────────────┘