[System Design] What is Geohashing?

What is Geohashing?

Geohashing은 지리적 좌표를 다양한 해상도의 셀이라고 하는 지도상의 영역을 나타내는 짧은 숫자와 문자의 문자열로 인코딩하는데 사용되는 Geocoding의 방식이다. Geohashing의 최대 길이는 12자이다.

How Does Geohashing Work?

Geohash는 Base-32 기반 인코딩을 사용한다. 전 세계가 32개의 셀중 하나로 나뉘어진다고 하자. Geohash의 첫 문자는 32개의 셀 중 하나로 초기 위치를 식별한다. 이 셀 역시 32개의 셀을 포함하며, 각 셀에는 32개의 셀이 반복적으로 포함된다.

Geohash에 문자를 추가하면 셀을 세분화하여 더 자세한 영역으로 확대할 수 있으며 정밀도 계수에 따라 셀의 크기가 결정된다. 예를 들어 정밀도 계수가 1이면 높이 5000km, 너비 5000km의 셀이 생성되고 정밀도 계수가 9이면 높이 4.77m 너비 4.77m의 셀이 생성된다.

Geohash Examples and Use Cases

Geohashing은 원래 URL 단축 서비스로 개발되었지만 현재는 공간 인덱싱, 위치 검색, 고유 장소 식별자 생성에 일반적으로 사용된다.

Geohash benefits

  1. Geohash는 일반 주소나 위도 및 경도 좌표보다 짧기 때문에 공유, 기억, 저장하기 더 유리하다.

What are the drawbacks to using a geohash?

  1. Grid 기반 Geohasing을 사용하기 위해선 정밀도가 높아야 한다.
  2. 지구는 불규칙한 타원이기 때문에 계수가 증가함에 따라 편차가 달라진다.
Author: Song Hayoung
Link: https://songhayoung.github.io/2023/03/05/System%20Design/etc/geohash/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.