ガソリンスタンド検索を作ってみた
札幌に戻ってから車を所有した。
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