본문 바로가기

기타 자료/geometry

polyline decoding

[1. 개요]

인코딩 한 polyline 을 다시 decoding 하는 방법을 정리한다.

decoding 은 encoding 을 거슬러 올라가면 된다.

 

wgs84 좌표를 encoding 한 형태에 대해서 정리한다.


[2. encoding 과정]

encoding 에 대해서 정리한 페이지는 아래를 참조한다.

간략하게 정리하면 아래와 같다.

  1. 소수점 확보
  2. 1 bit left-shift
  3. 음수 인 경우, bit 반전
  4. 하위 5bit 단위로 처리
    # 다음 bit chunk 가 0이 아닌 경우, 현재 bit chunk 와 0x20 를 OR 연산
    ## 0x20 == 0010_0000
    # 연산 결과에 63 을 더함
    # ascii 문자로 변환
  5.  bit chunk 가 0 인 경우 종료

encoding 된 polyline 의 각 문자에 대해서 위 과정을 역으로 해주면 된다.

  1. ascii 문자를 정수로 변환
  2. 63 을 뺌
  3. 상위 5bit 단위로 처리
    # 다음 bit chunk 가 0 인 경우
    # 음수 인 경우, bit 반전

[3. 코드]

출력

126.59683
32.12345

 

encoding 시 사용한 좌표는 소수점 7번째 자리까지 표현하지만,

encoding 은 5번째 자리까지만 사용하도록 하였기에, 5번째 자리까지만 decoding 되었다.

 

 

'기타 자료 > geometry' 카테고리의 다른 글

polyline encoding  (0) 2023.06.14