ST_GEOHASH
ST_GEOHASH
GEOGRAPHY 또는 GEOMETRY 객체의 지오해시(geohash)를 반환하는 지리 공간 함수예요. 지오해시는 세계의 위치를 포함하는 대권 사각형을 식별하는 짧은 base32 문자열입니다.
본문
지오해시의 문자 수는 정밀도를 결정해요. 지오해시 끝에서 문자를 제거하면 덜 정밀하고 더 큰 사각 영역을 식별하는 지오해시가 돼요.
ST_GEOHASH는 기본적으로 20자 길이의 지오해시를 반환해요. 선택 인자 precision은 반환되는 지오해시의 정밀도를 지정해요. 예를 들어 precision에 5를 넘기면 더 짧고(5자) 덜 정밀한 지오해시를 반환해요.
참고: 점이 아닌 지리 공간 객체에 대해서는 기본값이나 지정한
precision과 무관하게 덜 정밀한 지오해시를 반환할 수 있어요. 이 경우 정밀도는 객체의 경계 상자에 의해 결정되는데, ST_GEOHASH는 경계 상자의 왼쪽 아래와 오른쪽 위 모서리의 지오해시를 먼저 구한 뒤 이 두 지오해시에 공통인 접두사를 반환해요.
ST_GEOHASH( <geography_expression> [, <precision> ] )
ST_GEOHASH( <geometry_expression> [, <precision> ] )
geography_expression — GEOGRAPHY 타입의 표현식.
geometry_expression — SRID 4326인 GEOMETRY 타입의 표현식.
precision (선택) — 지오해시에 사용할 문자 수. 1에서 20 사이 값을 지정할 수 있어요. 기본값은 20이에요.
반환값 — 지정한 객체의 지오해시(STRING 타입 값). 객체가 Polygon이고 경계 상자의 두 점이 같은 지오해시 접두사를 공유하지 않으면 빈 문자열을 반환할 수 있어요.
예시 — GEOGRAPHY 점의 지오해시:
SELECT ST_GEOHASH(
TO_GEOGRAPHY('POINT(-122.306100 37.554162)'))
AS geohash_of_point_a;
+----------------------+
| GEOHASH_OF_POINT_A |
|----------------------|
| 9q9j8ue2v71y5zzy0s4q |
+----------------------+
같은 점을 덜 정밀하게(5자):
SELECT ST_GEOHASH(
TO_GEOGRAPHY('POINT(-122.306100 37.554162)'),
5) AS less_precise_geohash_a;
+------------------------+
| LESS_PRECISE_GEOHASH_A |
|------------------------|
| 9q9j8 |
+------------------------+