2010년 7월 21일 수요일

GIST의 위도와 경도

구글 지도가 제공하는 OpenAPI인 구글 Geocoding API를 이용하면, GIST의 위도와 경도를 찾을 수 있다. 웹브라우저의 주소 입력 칸에 아래 주소를 넣으면, XML 형태의 위치 정보를 받을 수 있다.
http://maps.google.com/maps/api/geocode
/xml?address=GIST,+Oryong-dong+1,+Buk-gu,+Gwangju&
sensor=false
아래 결과를 보면, geometry 태그 아래에 위도와 경도 정보가 나와 있는 것을 알 수 있다.


구글 Static Maps API를 이용해서 우리가 얻은 위도와 경도 정보가 정확한지 확인해 볼 수 있다.
http://maps.google.com/maps/api
/staticmap?center=35.2278792,126.8415491&zoom=15&
markers=35.2278792,126.8415491&size=400 x400&sensor=false

이상의 과정을 매스매티카에서도 쉽게 재현해볼 수 있다. 먼저, XML 패키지를 읽어들인다.
<< XML`
구글 지도에서 위치 정보를 XML로 받아온다. 매스매티카는 웹브라우저와 달리 언어 정보를 보내지 않으므로, 결과를 한글로 받아오려면 언어 정보를 명시해줘야 한다.
gistXML =
 XMLGet["http://maps.google.com/maps/api/geocode
/xml?address=GIST,+Oryong-dong+1,+Buk-gu,+Gwangju&
language=ko&sensor=false"]
받아온 자료에서 위도와 경도 정보를 빼낸다.
latlng = ToExpression@
  Flatten@Cases[gistXML,
    XMLElement[
      "location", _, {XMLElement["lat", _, {lat_}],
       XMLElement["lng", _, {lng_}]}] -> {lat, lng}, Infinity]
이렇게 얻은 위도와 경도 정보를 지도로 확인해 볼 수 있다.
Block[{url, loc},
 loc = ToString /@ latlng /. {x_, y_} :> x <> "," <> y;
 url = "http://maps.google.com/maps/api/staticmap?center=" <> loc <>
   "&zoom=15&markers=" <> loc <> "&size=400x400&sensor=false";
 Import[url]
 ]
참고자료
  1. The Google Geocoding API
  2. Static Maps API V2 Developer Guide

    댓글 없음:

    댓글 쓰기