구글 맵에서 해보려고 했으나 지금 우리나라 주소만을 대상으로 위,경도 좌표가 필요해서 네이버 api를 사용하려고 한다.

 

주소를 가지고 api를 통해 위도, 경도 좌표를 얻는 일을 geocoding이라고 한다. (거꾸로 위도, 경도 좌표로 주소를 얻을 수도 있는데 이를 reverse geocoding이라고 부른다.) 이건 복잡하게 api에서 javascript를 부르고 코드를 짤 필요가 없을 것 같이 느껴질텐데, 맞다. 그럴 필요가 별로 없다. 홈페이지에 지도 넣고 부가기능 넣는게 더 힘든 일이다.

 

국내에서는(현재 날짜로 대충 2013년 4월 30일) NAVER map API를 사용할 수 있다. 다음 API도 있지만 아직 확인하지는 않았다. 네이버 서버자원이 더 풍부할테니 네이버에 신세좀 져야겠다.

 

1. 우선 API key를 발급받는다. 무한정 쿼리를 날려서 정보를 얻어올 수 없다. 그래서 key를 받고 하루에 정해진 양만큼을 써야한다. 근데 그 양도 꽤 많다.

 

https://dev.naver.com/openapi/register

 

지도 API 키를 등록한 후에 키를 저장해놓자.

 

2. 이제 절반 한거다. ㅎㅎㅎㅎㅎgeocoding을 하려면 다음과 같은 규칙으로 주소를 만들어 넣으면 된다.

1. http://openapi.map.naver.com/api/geocode.php?

2. key=test

3. &encoding=utf-8

4. &coord=tm128

5. &query=경기도성남시정자1동25-1

 

2번은 키를 넣는 부분이다. 아까 받은 key를 넣으시라.

3번은 인코딩을 정하는 부분인데 그냥 흔히 쓰는 utf-8로 고고

4번은 coodination을 정하는 곳이다. tm128(이게 중부원점 좌표인가 그럴텐데?)과 위경도 좌표계가 있다. 위경도는 latlng 을 넣으면 된다.

5번은 진짜 주소다.

(레퍼런스 : http://dev.naver.com/openapi/apis/map/javascript_2_0/reference#coordtrans)

 

이렇게 만든 주소(1+2+3+4+5, 합쳐서 15가 아님!)를 브라우저에 넣고 엔터를 치면 된다. XML로 결과값을 주는데 이걸 사용하기 좋은 언어로 파싱하면 된다.

 

참 쉽지요?

 

+ Recent posts