本番環境は、問題ないとしてローカルでテストしているときですが、Djangoの場合
http://localhost:8000
となっているわけです。
ここでテストするにはどうしたらよいかと思っていたら
普通にGoogle map APIのkeyの申請のところで
http://localhost:8000
と申請すればよいだけでした。
で、Google App EngineのDjango環境でためしに住所から緯度経度を取ってみるサンプルです。
まずsettings.pyに
MAP_KEY = 'xxxxxxxxx'
と定義しておきます。
適当なところで以下のような感じで
# -*- coding: utf-8; -*-
from django.conf import settings
import xml.etree.ElementTree as etree
from google.appengine.api import urlfetch
import urllib
def test_gmap():
url = 'http://maps.google.com/maps/geo?'
url = url + 'key=' + settings.MAP_KEY
url = url + '&sensor=false'
url = url + '&output=xml'
url = url + '&q=' + urllib.quote('千代田区丸の内1-9-1')
result = urlfetch.fetch(url)
if result.status_code == 200:
dom = etree.fromstring(result.content)
namespace ='http://earth.google.com/kml/2.0'
retunrn dom.findtext('.//{%s}coordinates' % namespace)
ちょっとはまったポイントとしては、日本語を利用するならばファイルの先頭に
# -*- coding: utf-8; -*-
を忘れずに。
manage.py startapp
で生成するviews.pyとかにはcodingが入っていないので入れ忘れていてエラーが出てちょっと考えちゃいました。
あと、xmlの解析に利用しているElementTreeについては、
http://python.matrix.jp/modules/ElementTree.html
が参考になります。
0 件のコメント:
コメントを投稿