Geohash 함수
Geohash 함수
Geohash는 지구 표면을 격자 모양의 버킷으로 세분하고 각 셀을 짧은 문자·숫자 문자열로 인코딩하는 지오코드(geocode) 시스템이에요. 계층적 데이터 구조라서 geohash 문자열이 길수록 지리적 위치가 더 정밀해져요.
지리 좌표를 geohash 문자열로 직접 변환해야 한다면 geohash.org를 사용할 수 있어요.
출처: 문서
본문
geohashEncode
위도와 경도를 geohash 문자열로 인코딩해요.
구문 (Syntax)
geohashEncode(longitude, latitude, [precision])
입력 값 (Input values)
longitude— 인코딩할 좌표의 경도 부분이에요. 범위[-180°, 180°]의 부동소수 값. Float.latitude— 인코딩할 좌표의 위도 부분이에요. 범위[-90°, 90°]의 부동소수 값. Float.precision(선택) — 결과 인코딩 문자열의 길이예요. 기본값은12. 범위[1, 12]의 정수. Int8.
참고: - 모든 좌표 인자는
Float32또는Float64중 동일한 타입이어야 해요.
precision인자는1보다 작거나12보다 큰 값이 조용히12로 변환돼요.
반환 값 (Returned values)
- 인코딩된 좌표의 영숫자 문자열이에요(base32-encoding 알파벳의 수정 버전을 사용해요). String.
예시 (Example)
SELECT geohashEncode(-5.60302734375, 42.593994140625, 0) AS res;
┌─res──────────┐
│ ezs42d000000 │
└──────────────┘
geohashDecode
geohash 인코딩 문자열을 경도와 위도로 디코딩해요.
구문 (Syntax)
geohashDecode(hash_str)
입력 값 (Input values)
hash_str— Geohash 인코딩된 문자열이에요.
반환 값 (Returned values)
- 경도와 위도의
Float64값 튜플(longitude, latitude)이에요. Tuple(Float64)
예시 (Example)
SELECT geohashDecode('ezs42') AS res;
┌─res─────────────────────────────┐
│ (-5.60302734375,42.60498046875) │
└─────────────────────────────────┘
geohashesInBox
주어진 정밀도로, 주어진 박스 안쪽에 들어가고 경계선과 교차하는 geohash 문자열의 배열을 반환해요. 기본적으로 2차원 격자를 배열로 평탄화한 것이에요.
구문 (Syntax)
geohashesInBox(longitude_min, latitude_min, longitude_max, latitude_max, precision)
인자 (Arguments)
longitude_min— 최소 경도. 범위:[-180°, 180°]. Float.latitude_min— 최소 위도. 범위:[-90°, 90°]. Float.longitude_max— 최대 경도. 범위:[-180°, 180°]. Float.latitude_max— 최대 위도. 범위:[-90°, 90°]. Float.precision— Geohash 정밀도. 범위:[1, 12]. UInt8.
참고: 모든 좌표 인자는
Float32또는Float64중 동일한 타입이어야 해요.
반환 값 (Returned values)
- 제공된 영역을 덮는, 정밀도만큼 길이의 geohash 박스 문자열 배열이에요. 항목의 순서에 의존하면 안 돼요. Array(String).
[]- 최소 위도·경도 값이 대응하는 최대 값보다 작지 않으면 빈 배열이에요.
참고: 결과 배열이 10,000,000개 항목보다 길면 함수가 예외를 던져요.
예시 (Example)
SELECT geohashesInBox(24.48, 40.56, 24.785, 40.81, 4) AS thasos;
┌─thasos──────────────────────────────────────┐
│ ['sx1q','sx1r','sx32','sx1w','sx1x','sx38'] │
└─────────────────────────────────────────────┘
더 알아보기 (Learn more)
- ClickHouse 함수 목록 전체는 함수 개요를 참고해요.