WGS84GEO 좌표를 Google polyline format으로 encoding 하고 decoding 해야 할 일이 생겼다.
https://developers.google.com/maps/documentation/utilities/polylinealgorithm
위의 url을 통해 들어가 보면 google polyline format을 인코딩하고 디코딩하는 방법에 대한 설명이 나와있다.
직접 소스를 작성해서 2진수를 변환하고 여러가지 과정을 통해서 변환이 가능하다.
하지만 Maven 이나 Gradle 을 사용중이라면 간단한 방법이 있다.
Maven 을 사용중이라면 pom.xml 에 아래와 같이 넣어주면된다.
(글 작성 당시 버전은 1.0.1이 최신이었음)
<dependency>
<groupId>com.google.maps</groupId>
<artifactId>google-maps-services</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
</dependency>
Java 소스 예제로는 아래와 같이 간단하게 사용이 가능하다.
package com.polyline.controller;
import java.util.ArrayList;
import java.util.List;
import com.google.maps.internal.PolylineEncoding;
import com.google.maps.model.LatLng;
public class PolylineTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<LatLng> coordList = new ArrayList<>();
coordList.add(new LatLng(37.5655932,126.9884135));
coordList.add(new LatLng(37.56530712,126.9884219));
String encodeTxt = PolylineEncoding.encode(coordList);
System.out.println(encodeTxt);
}
}
List에 좌표를 담아서 PolylineEncoding.encode 함수를 통해 google polyline format으로 변환된 것이 확인가능하다.
반대로 decode를 실행하고 싶은경우 PolylineEncoding.decode 함수를 사용하면된다.
decode 함수를 사용하면 encode 할 때 사용했던 List 형태로 반환이 된다.
여기에서 decode 예제는 생략한다.
'SPRING > spring' 카테고리의 다른 글
스프링 파일 업로드 예제 (1) | 2017.01.16 |
---|---|
스프링 mvc Ajax 통신 return json (jackson 사용) (0) | 2017.01.11 |
spring jsp form 한글 깨짐 설정 (0) | 2017.01.06 |
The prefix "mvc" for element "mvc:interceptors" is not bound. (0) | 2017.01.03 |
스프링 시큐리티 비밀번호 bcrypt 간단한 암호화 (2) | 2017.01.03 |