공개 위치 코드(Open Location Code)는 위도, 경도보다 사용하기 쉬운 형태로 위치를 인코딩하는 방법을 제공하는 기술이다. 생성된 코드는 "+" 문자를 포함한다는 특징으로 인해 플러스 코드라고 합니다.
이 기술은 특히 건물 번호가 없거나 거리 이름이 지정되지 않은 장소에서 거리 주소를 대체하는 데 사용할 수 있는 코드를 생성하도록 설계되었습니다.
플러스 코드는 지점이 아닌 영역을 나타냅니다. 코드에 숫자가 추가될수록 면적이 줄어들기 때문에 짧은 코드보다 긴 코드가 더 정확합니다.
유사한 코드는 다른 코드보다 더 가까이 위치해 있습니다.
위치는 코드로 변환될 수 있으며, 이 (전체) 코드는 조회할 데이터 테이블이나 온라인 서비스가 필요 없이 완전히 오프라인인 위치로 다시 변환될 수 있습니다.
보다 쉬운 의사소통을 위해 코드를 단축할 수 있으며, 이 경우 지역적으로 사용하거나 이 단축 코드를 사용하는 모든 사용자가 알아야 하는 참조 위치와 함께 사용할 수 있습니다. 참조 위치가 위치 이름의 형태로 제공되는 경우 원래 위치를 복구하려면 지오코딩 서비스를 사용해야 할 수도 있습니다.
알고리즘
공개적으로 이용 가능하며 제한 없이 사용할 수 있습니다. 지오코딩 서비스는 Open Location Code 기술의 일부가 아닙니다.
코드는 20개 세트에서 선택한 일련의 숫자로 구성됩니다. 코드의 숫자는 위도와 경도를 번갈아 표시합니다. 처음 네 자리는 위도 1도와 경도 1도 영역을 도 단위로 정렬하여 나타냅니다. 코드에 두 자리를 더 추가하면 영역이 이전 영역 내에서 1/20도씩 1/20도로 줄어듭니다. 등등 - 각 숫자 쌍은 이전 영역의 1/400로 영역을 줄입니다.
예를 들어, 케냐 나이로비의 국회의사당은 6GCRPR6C+24에 있습니다. 6GCR은 2°S 36°E에서 1°S 37°E까지의 영역입니다. PR6C+24는 6GCR 내 너비가 14 x 14미터인 영역입니다.
"+" 문자는 8자리 숫자 뒤에 사용되어 코드를 두 부분으로 나누고 우편번호와 코드를 구별하기 위해 사용됩니다.
10자리 코드가 충분히 정확하지 않은 위치가 있지만 이를 20배로 정제하면 i) 불필요하게 정확하고 ii) 코드를 두 자리로 확장해야 합니다. 대신 10자리 이후에는 영역을 4x5 격자로 나누고 격자 사각형을 식별하는 데 한 자리 숫자를 사용합니다. 단일 그리드 개선 단계를 통해 면적이 약 3.5x2.8미터로 줄어듭니다.
코드는 위치에 따라 단축될 수 있습니다. 이는 위치를 사용하여 대략적인 영역을 식별한 다음 가장 가까운 일치 코드를 생성함으로써 기억해야 하는 자릿수를 줄입니다. 가능한 경우 코드를 줄이면 코드 시작 부분에서 4자리 이상의 숫자가 삭제됩니다. 코드를 단축할 수 있는 정도는 참조 위치의 근접성에 따라 달라집니다.
참조 위치가 도시 이름에서 파생된 경우 지오코딩 서비스의 정확성에 따라 달라집니다. 한 서비스에서는 "Zurich"를 Google 사무실 가까이에 배치할 수도 있지만 다른 서비스에서는 이를 100미터 이상 이동할 수도 있으며 이는 원본 코드가 복구되는 것을 방지하기에 충분할 수 있습니다. 참조 위치를 생성하기 위한 대도시 크기 피처보다는 지오코드 결과에 큰 변화가 없는 더 작은 인근 피처를 사용하는 것이 좋습니다.
코드 단축에 대한 지침은 위키에 있습니다.
단축 코드 복구는 단축 코드와 참조 위치를 제공하여 작동합니다. 코드를 단축하는 데 사용된 위치와 동일할 필요는 없지만 근처에 있어야 합니다. 단축 코드에는 항상 "+" 문자가 포함되므로 누락된 구성 요소를 쉽게 계산할 수 있습니다.
하위 디렉터리에는 다양한 언어에 대한 샘플 구현 및 테스트가 포함되어 있습니다. 각 구현은 다음 기능을 제공합니다.