Skip to content

Instantly share code, notes, and snippets.

@mogya
Created November 15, 2012 02:39
Show Gist options
  • Save mogya/4076294 to your computer and use it in GitHub Desktop.
Save mogya/4076294 to your computer and use it in GitHub Desktop.
モバイラーズオアシスAPI rubyでの利用サンプル
#!/usr/bin/env ruby
# -*- encoding: utf-8 -*-
require "open-uri"
require "json"
#引数の取得
lat,lng=ARGV[0].to_f,ARGV[1].to_f if (ARGV.size>1)
if !(lat&&lng)
STDERR.puts("lat lngがないので、仮に大阪の梅田駅周辺を表示します")
lat,lng= 34.70288,135.49863
end
#モバイラーズオアシスAPIを呼び出す
# 範囲を示す4点を作成。今回は簡単に、緯度経度の±0.01度(日本だと1kmくらい)を範囲にします
n,s = lat+0.01,lat-0.01
w,e = lng-0.01,lng+0.01
mo_url = sprintf('http://oasis.mogya.com/api/v0/search?n=%.5f&w=%.5f&s=%.5f&e=%.5f',n,w,s,e)
ret = JSON.parse(open(mo_url).read)
#エラーだったときの処理
if('ZERO_RESULTS'==ret['status'])
#スポットが見つからなかったとき
STDERR.puts( "電源のあるお店は見つかりませんでした(><)" )
exit
end
if('OK'!=ret['status'])
#ZERO_RESULTS以外のエラー
STDERR.puts("error")
STDERR.puts(ret['status'])
STDERR.puts(ret['message']) if ret['message']
exit
end
#結果を表示
spots = ret['results']
STDOUT.puts( sprintf("(%.5f,%.5f)周辺で電源のあるお店リスト",lat,lng) )
0.upto(spots.count-1){|i|
# spots[i]['title']で店名、spots[i]['address']で住所...という具合に取得できます
STDOUT.puts( sprintf("%i:%s(%s)", i,spots[i]['title'],spots[i]['address']) )
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment