Mais conteúdo relacionado
Semelhante a GPS×Twitter4Rでたのしい位置情報ライフ (20)
GPS×Twitter4Rでたのしい位置情報ライフ
- 1. GPS×Twitter4Rで
たのしい位置情報ライフ
2009/7/18
川戸 正裕
http://d.hatena.ne.jp/m-kawato
http://twitter.com/m_kawato
2009/7/18 RejectKaigi2009 1
- 2. 自己紹介
● 某電機メーカー勤務
●
仕事ではあんまりRuby触ってません
● 気が乗ったら欲しいツールを自作
➢
最近はもっぱらTwitter関連
●
ときどきTokyu.rbに出没
2009/7/18 RejectKaigi2009 2
- 3. あらすじ
●
最近iPhone 3GSを入手
●
GPSを使って、現在位置をTwitterに投稿したい
➢
でもSDKはMac OS版しかないし…
●
iPhone OS 3のSafariではJavaScriptから
GPS測定結果が取れる → これだ!
2009/7/18 RejectKaigi2009 3
- 6. Geolocation API
● Google Gears APIの一部
http://code.google.com/intl/ja/apis/gears/api_geolocation.html
● こんな感じでJavaScriptから位置情報を取得
<head>
<script type=”text/javascript”>
// コールバック関数
function updateLocation(pos) {
var lat = pos.coords.latitude; // 緯度
var long = = pos.coords.longitude; // 経度
....
}
</script>
</head>
<body
onload=”navigator.geolocation.watchPosition(updateLocation)”>
2009/7/18 RejectKaigi2009 6
- 7. Yahoo! ローカルサーチAPI
●
地図上の住所/ランドマーク/位置情報 (緯度・経度) を相互に変換するWeb API
●
今回は、Geolocation APIで取得した位置情報から住所を取得するために利用
<script type=”text/javascript”>
// Yahoo! local search JSONP APIの呼び出し
function getAddress(lat, long) {
var target = document.createElement('script');
target.src = "http://map.yahooapis.jp/LocalSearchService/V1/LocalSearch?
appid=hogehoge&lat=" + encodeURI(lat) + "&lon=" + encodeURI(long) +
"&datum=wgs&category=address&o=json&callback=getResult";
document.body.appendChild(target);
}
// コールバック関数
function getResult(result) {
if (result.Count > 0) {
var addr = result.Item[0].Address; // API呼び出し結果から住所取り出し
..
}
...
}
</script>
2009/7/18 RejectKaigi2009 7
- 8. Twitter4R
●
TwitterのWeb APIをRubyから使うためのライブラリ
●
今回はメッセージ投稿のためだけに利用
●
位置情報取得用JavaScriptコードからCGIとして呼び出し
require 'rubygems'
require 'twitter'
TWITTER_USER = <Twitter user ID>
TWITTER_PASSWORD = <Twitter password>
client = Twitter::Client.new(:login => TWITTER_USER,
:password => TWITTER_PASSWORD)
client.status(:post, “投稿メッセージ”)
2009/7/18 RejectKaigi2009 8
- 9. ユーザインタフェース
現在位置の住所
(Yahoo! ローカルサーチ
APIから)
GPS生データ (緯度、経度)
Twitter投稿に付加する
コメント
Twitterに投稿
2009/7/18 RejectKaigi2009 9
- 10. まとめ
●
Geolocation API+Twitter 4RによるGPS活
用
● 使いたい機能を自分で作るのがサンデープロ
グラミングの醍醐味
● 車輪の再発明とか気にしない
●
興味や記憶を維持するのは面倒なので、1日で
完結する範囲で開発
●
スキルの蓄積によって、1日で作れる範囲の拡大を
期待
2009/7/18 RejectKaigi2009 10
- 11. おまけ: システム構成
Webサーバ (Ubuntu 8.04)
5. POST
(via Twitter4R)
Twitter
HTML+JavaScript Ruby CGIスクリプト
twitter.com
4. POST 3. 位置情報から住所取得
1. GET (via Yahoo! local search API)
JavaScript
コード Yahoo!
map.yahooapis.jp
iPhone 2. 位置情報取得
GPS (via Geolocation API)
2009/7/18 RejectKaigi2009 11