ガソリンスタンド検索を作ってみた

札幌に戻ってから車を所有した。
1円でも安くガソリンを入れたいのでガソリン価格比較サイト(http://gogo.gs/)を見たりしていたが
APIが提供されていたので、簡単なものを作ってみた。
住所や駅名、地名なんかを入力してその近辺で安い所を探すという使い方。
http://chiikinavi.appspot.com/gs

ソース抜粋

str = self.request.get('str')
dist = self.request.get('dist')
kind = self.request.get('kind')

result = urllib.urlopen('http://maps.google.com/maps/geo?q=%s&key=あなたのキー&output=xml' % urllib.quote_plus(str.encode('UTF-8')))
xml = ElementTree.fromstring(result.read())
ns = 'http://earth.google.com/kml/2.0'

point = xml.findtext('./{%s}Response/{%s}Placemark/{%s}Point/{%s}coordinates/' % (ns,ns,ns,ns))
if point == None:
  #エラー
  self.response.out.write(template.render(path,attr))
  return
point = point.split(',')
lat = point[1]
lon = point[0]
# gogo's
result = urllib.urlopen('http://api.gogo.gs/v1.2/?apid=あなたのID&lat=%s&lon=%s&num=10&dist=%s&kind=%s' % (lat, lon, dist,kind))
xml = ElementTree.fromstring(result.read())
gslist = []
for e in xml.getiterator('Item'):
  gs = {
    'Brand':e.findtext('./Brand'),
    'ShopCode':e.findtext('./ShopCode'),
    'ShopName':e.findtext('./ShopName'),
    'Latitude':e.findtext('./Latitude'),
    'Longitude':e.findtext('./Longitude'),
    'Address':e.findtext('./Address'),
    'Price':e.findtext('./Price'),
    'Rtc':e.findtext('./Rtc'),
    'Self':e.findtext('./Self')
  }
  if e.findtext('./Photo') != '0':
    gsmap['Photo']=e.findtext('./Photo')
  gslist.append(gs)
gslist.reverse