반응형

WGS84GEO 좌표를 Google polyline format으로 encoding 하고 decoding 해야 할 일이 생겼다.

 

https://developers.google.com/maps/documentation/utilities/polylinealgorithm

 

Encoded Polyline Algorithm Format  |  Google Maps Platform  |  Google Developers

Points: (38.5, -120.2), (40.7, -120.95), (43.252, -126.453) 38.5 -120.2 3850000 -12020000 +3850000 -12020000 _p~iF ~ps|U _p~iF~ps|U 40.7 -120.95 4070000 -12095000 +220000 -75000 _ulL nnqC _ulLnnqC 43.252 -126.453 4325200 -12645300 +255200 -550300 _mqN vxq`

developers.google.com

위의 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 예제는 생략한다.

반응형
반응형

제이쿼리로 ajax 비동기 통신을 하는데 No transport 라는 에러가 나오며 통신을 실패했습니다.


저의 경우 크롬에서는 ajax 통신을 제대로 하는데, ie(익스플로러)에서만 No transport라는 에러가 발생을 했습니다.


찾아본 결과 로컬에서 ajax 통신을 할때 크로스 도메인 문제 였으며, 아래와 같이 한줄을 추가 함으로 해결했습니다.


제이쿼리에서 크로스도메인을 허용해주는 소스를 ajax 통신하는 부분 위에 적어주면 됩니다.


$.support.cors = true;



반응형

'JavaScript > jQuery' 카테고리의 다른 글

ajax 비동기 통신시 return 값 변수에 저장  (0) 2017.08.02
제이쿼리 ajax 더보기 버튼 구현  (1) 2016.12.01
제이쿼리 timepicker  (2) 2016.05.25
반응형

아파치에 리스폰스 헤더에서 서버 정보를 노출하는 경우, 서버정보를 숨기기 위해서 httpd.conf 파일을 수정해야 합니다.

( 리눅스에서 서버의 헤더 정보를 확인하기 위해서는 'curl -I http://localhost'로 확인 가능합니다. )

( ex) Server: Apache/2.4.27 (Unix) )


httpd.conf 파일에서 ServerTokens 를 검색합니다. 

( vi로 읽는경우 /ServerTokens 로 검색 가능 )


만약 검색이 되지않는다면, httpd.conf 파일에 아래의 내용을 추가합니다. ( 위치 상관 X )


ServerTokens Prod

ServerSignature Off 


이미 해당 내용이 있어도 위와 같이 수정을 하면 됩니다.


ServerTokens 는 리스폰스 헤더에서 보여주는 서버 정보의 레벨을 지정하는 것 입니다.

( Prod는 최소의 서버 정보를 보여주게 됩니다. ex) Server: Apache )

ServerSignature 는 404 발생시 서버정보를 보여주는 것을 On/Off 하는 것 입니다.


수정하여 저장 후 httpd를 재실행하면 적용 가능합니다.

반응형

+ Recent posts