nantekkotai achieves

過去記事置き場

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 では日本語での取得がうまくいかなかったが、通常のテスト環境では問題なく動いた。