본문 바로가기

삽질

Google Map Geocoding

구글맵에서 제공하는 주소에서 좌표변환은 구글맵의 GClientGeocoder 클래스를 보통 사용하지만 여러개를 받을때는 직접 Geocoding 를 사용하는 것이 좋다고 구글 맵스의 API에 나와있다.

방법은 보통의 OpenAPI와 같다. http://maps.google.com/maps/geo? 로 인자를 보내면 결과를 json, xml, kml, csv 중의 한 형태로 출력한다.

Geocoding 의 설명은 여기를 참고하면 된다.

http://code.google.com/intl/ko/apis/maps/documentation/geocoding/index.html

이를 사용하다가 생긴 의문점은 보통 한국 지도를 보기위해 http://maps.google.co.kr 로 요청을 보내지만 이상하게 http://maps.google.co.kr/maps/geo? 이나 Gecoding Request시의 Country Code를 KR로 입력하면 결과값이 http://maps.google.com/maps/geo? 에 비해서 작다. '시흥' 으로 검색하면서 확실히 알 수 있었다.

이렇게 한번 검색해보자. 여러 시에 북구 라는 구가 있다.

http://maps.google.com/maps/geo?q=북구&output=xml&key=
http://maps.google.com/maps/geo?q=북구&gl=KR&output=xml&key=
http://maps.google.co.kr/maps/geo?q=북구&output=xml&key=

입력해 보면 밑의 두개는 하나만 나타난다. KR로 명확히 정해지면 적게 나온다.

또한 결과 주소가 영문으로 나올때는 HTTP 헤더의 ACCEPT LANGUAGE 를 ko-KR를 앞에 붙이면 한글로 주소를 출력해준다.