HiiHahWIKI - making some notes for... -
Python:YahooジオコーダAPIを使ってみる
をテンプレートにして作成
開始行:
*Python:YahooジオコーダAPIを使ってみる [#wf5247b3]
こんな感じで作ってみました
■Yahoo_Geocoder_API.py
# encoding: utf-8
import urllib,urllib2
from StringIO import StringIO
from xml.etree import ElementTree
import sys
class YOLP_Client(object):
'''
YahooジオコーダAPIを使用し、住所から座標情報を取得し...
'''
BASE_URL='http://geo.search.olp.yahooapis.jp/OpenLoc...
def __init__(self,id):
self.app_id = id
def set_urllib2_param(self, param):
if param['proxy']:
proxy_handler = urllib2.ProxyHandler(param['...
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
def execute(self,address):
param = urllib.urlencode({'appid':self.app_id,'q...
url = self.BASE_URL + param
f = urllib2.urlopen(url)
if f.code != 200:
return None
res = ""
for l in f.readlines():
res = res + l
return res
def get_getinfo(self,address):
res = self.execute(address)
tree = ElementTree.parse(StringIO(res))
element = tree.find('{http://olp.yahooapis.jp/yd...
id = element.find('{http://olp.yahooapis.jp/ydf/...
name = element.find('{http://olp.yahooapis.jp/yd...
geometory = element.find('{http://olp.yahooapis....
return {'id':id,'name':name,'geometory':geometory}
if __name__ == '__main__':
if len(sys.argv) < 3 or len(sys.argv) > 4:
print 'usage: python Yahoo_Geocoder_API.py [app_...
print 'output is [lon,lat] [input住所] [output住...
exit(1)
client = YOLP_Client(sys.argv[1])
# proxy指定がある場合
if len(sys.argv) == 4:
client.set_urllib2_param({'proxy':{"http":sys.ar...
res = client.get_getinfo(sys.argv[2])
print res['geometory'].split(",")[1]+","+res['geomet...
使い方はこんな感じ。
python Yahoo_Geocoder_API.py [APIキー] 東京都
出力はこんな感じ
35.65806720,139.75159890 東京都 東京都港区 13103
**出力を地図にマーキングして確認 [#lda462f2]
サンプルのhtml(JavaScript)を作ってみました。
添付ファイルをダウンロードしてみてくださいw
***ElementTreeのtips [#o19ccd3d]
解析対象のXMLでネームスペースが使用されている場合、こんな...
element = tree.find('{http://olp.yahooapis.jp/ydf/1.0}Fe...
ちなみに、デバッガで変数の中身(elementのtagのなか)を見...
一部だけみてみるとこんな感じw
str: {http://olp.yahooapis.jp/ydf/1.0}Feature
へー
***参考サイト [#cc41be45]
-http://developer.yahoo.co.jp/webapi/map/openlocalplatfor...
-http://docs.python.jp/2.6/library/xml.etree.elementtree....
-http://phpjavascriptroom.com/?t=ajax&p=googlemapsapiv3_m...
終了行:
*Python:YahooジオコーダAPIを使ってみる [#wf5247b3]
こんな感じで作ってみました
■Yahoo_Geocoder_API.py
# encoding: utf-8
import urllib,urllib2
from StringIO import StringIO
from xml.etree import ElementTree
import sys
class YOLP_Client(object):
'''
YahooジオコーダAPIを使用し、住所から座標情報を取得し...
'''
BASE_URL='http://geo.search.olp.yahooapis.jp/OpenLoc...
def __init__(self,id):
self.app_id = id
def set_urllib2_param(self, param):
if param['proxy']:
proxy_handler = urllib2.ProxyHandler(param['...
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
def execute(self,address):
param = urllib.urlencode({'appid':self.app_id,'q...
url = self.BASE_URL + param
f = urllib2.urlopen(url)
if f.code != 200:
return None
res = ""
for l in f.readlines():
res = res + l
return res
def get_getinfo(self,address):
res = self.execute(address)
tree = ElementTree.parse(StringIO(res))
element = tree.find('{http://olp.yahooapis.jp/yd...
id = element.find('{http://olp.yahooapis.jp/ydf/...
name = element.find('{http://olp.yahooapis.jp/yd...
geometory = element.find('{http://olp.yahooapis....
return {'id':id,'name':name,'geometory':geometory}
if __name__ == '__main__':
if len(sys.argv) < 3 or len(sys.argv) > 4:
print 'usage: python Yahoo_Geocoder_API.py [app_...
print 'output is [lon,lat] [input住所] [output住...
exit(1)
client = YOLP_Client(sys.argv[1])
# proxy指定がある場合
if len(sys.argv) == 4:
client.set_urllib2_param({'proxy':{"http":sys.ar...
res = client.get_getinfo(sys.argv[2])
print res['geometory'].split(",")[1]+","+res['geomet...
使い方はこんな感じ。
python Yahoo_Geocoder_API.py [APIキー] 東京都
出力はこんな感じ
35.65806720,139.75159890 東京都 東京都港区 13103
**出力を地図にマーキングして確認 [#lda462f2]
サンプルのhtml(JavaScript)を作ってみました。
添付ファイルをダウンロードしてみてくださいw
***ElementTreeのtips [#o19ccd3d]
解析対象のXMLでネームスペースが使用されている場合、こんな...
element = tree.find('{http://olp.yahooapis.jp/ydf/1.0}Fe...
ちなみに、デバッガで変数の中身(elementのtagのなか)を見...
一部だけみてみるとこんな感じw
str: {http://olp.yahooapis.jp/ydf/1.0}Feature
へー
***参考サイト [#cc41be45]
-http://developer.yahoo.co.jp/webapi/map/openlocalplatfor...
-http://docs.python.jp/2.6/library/xml.etree.elementtree....
-http://phpjavascriptroom.com/?t=ajax&p=googlemapsapiv3_m...
ページ名: