Google App EngineでGoogleマップ用のジオコードを取得する
こちらを参考にさせていただきました。
http://d.hatena.ne.jp/gonsuzuki/20080630/1214888695
ポイントは Fetch API と Django の simplejson のようだ。
目的としては、ユーザーが入力した都市名を Google API のジオコーディングサービスから JSON を取得、それを解析して緯度・経度だけ抜き取る。
簡単にやってみると以下のようになった。
from google.appengine.api import urlfetch from django.utils import simplejson # 「tokyo」の位置を取得 q = u'tokyo' url = "http://maps.google.com/maps/geo?q=" + q + "&output=json&key=abcdefg" result = urlfetch.fetch(url) if result.status_code == 200: res_json = simplejson.loads(result.content) geo = res_json["Placemark"][0]["Point"]["coordinates"] # geo[1]:緯度, geo[0]:経度 print geo[1], geo[0] #=> 35.678451 139.682282
これで問題なく取得。
SDKの Interactive Console では日本語での取得がうまくいかなかったが、通常のテスト環境では問題なく動いた。