2009-06-27

Djangoのローカルテスト環境でGoogle map apiを利用する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Google map APIを利用するには、サイトのurlが必要になります。

本番環境は、問題ないとしてローカルでテストしているときですが、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
が参考になります。
コメントを投稿