SlideShare a Scribd company logo
GPS×Twitter4Rで
       たのしい位置情報ライフ
               2009/7/18
              川戸 正裕
     http://d.hatena.ne.jp/m-kawato
     http://twitter.com/m_kawato

2009/7/18         RejectKaigi2009     1
自己紹介
 ●   某電機メーカー勤務
 ●
     仕事ではあんまりRuby触ってません
 ●   気が乗ったら欲しいツールを自作
     ➢
         最近はもっぱらTwitter関連
 ●
     ときどきTokyu.rbに出没




2009/7/18           RejectKaigi2009   2
あらすじ
 ●
     最近iPhone 3GSを入手
 ●
     GPSを使って、現在位置をTwitterに投稿したい
     ➢
         でもSDKはMac OS版しかないし…
 ●
     iPhone OS 3のSafariではJavaScriptから
     GPS測定結果が取れる → これだ!




2009/7/18          RejectKaigi2009      3
作ったもの




2009/7/18   RejectKaigi2009   4
2009/7/18   RejectKaigi2009   5
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
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
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
ユーザインタフェース



                                  現在位置の住所
                                  (Yahoo! ローカルサーチ
                                  APIから)

                                  GPS生データ (緯度、経度)



                                  Twitter投稿に付加する
                                  コメント

               Twitterに投稿
2009/7/18       RejectKaigi2009                     9
まとめ
 ●
     Geolocation API+Twitter 4RによるGPS活
     用
 ●   使いたい機能を自分で作るのがサンデープロ
     グラミングの醍醐味
     ●   車輪の再発明とか気にしない
 ●
     興味や記憶を維持するのは面倒なので、1日で
     完結する範囲で開発
     ●
         スキルの蓄積によって、1日で作れる範囲の拡大を
         期待


2009/7/18          RejectKaigi2009       10
おまけ: システム構成

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

More Related Content

PPTX
Geolocation API実地試験
PDF
Geolocation API を使った位置情報取得
PPTX
Niantic位置ゲームを 簡単にパクれないワケ
PDF
livedoor天気API終了対応
PPTX
Culture as a Resource for Regional Development Aid. EuropeAid, Egypt.
PDF
Abcs Identity
PDF
PPT
Geolocation API実地試験
Geolocation API を使った位置情報取得
Niantic位置ゲームを 簡単にパクれないワケ
livedoor天気API終了対応
Culture as a Resource for Regional Development Aid. EuropeAid, Egypt.
Abcs Identity

Similar to GPS×Twitter4Rでたのしい位置情報ライフ (20)

PDF
ロケタッチの裏側
PDF
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
PDF
【A-3】次世代ジオロケーション サービスの開発手法 河合太郎 氏
PDF
PDF
ジオロケーションサービスの現状とこれから
PDF
YOLP とスマートフォン向け 地図SDKのご紹介
PDF
Gps動態管理システムのご提案 2012 august
PDF
Real-time Bus Location System using by node.js
PDF
Gdg geo2
PDF
クラウドGPS(仮)
PPTX
Osckyoto2012 osgeojp foss4g
PDF
Gps動態管理システムのご提案 2012 aug_ver2.0
PDF
FOSS4Gで地理空間情報もかんたん
PDF
PDF
YOLP とスマートフォン向け 地図SDKのご紹介
PDF
【B-2】次世代ジオロケーションサービスの開発手法
PDF
多様化するロケーションビジネスのこれから
PDF
2012 07 14_osm-ws_2
PDF
Geopaparazzi & OSMフィールド調査ハンズオン
PDF
Yolp30分クッキング 2012北海道
ロケタッチの裏側
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
【A-3】次世代ジオロケーション サービスの開発手法 河合太郎 氏
ジオロケーションサービスの現状とこれから
YOLP とスマートフォン向け 地図SDKのご紹介
Gps動態管理システムのご提案 2012 august
Real-time Bus Location System using by node.js
Gdg geo2
クラウドGPS(仮)
Osckyoto2012 osgeojp foss4g
Gps動態管理システムのご提案 2012 aug_ver2.0
FOSS4Gで地理空間情報もかんたん
YOLP とスマートフォン向け 地図SDKのご紹介
【B-2】次世代ジオロケーションサービスの開発手法
多様化するロケーションビジネスのこれから
2012 07 14_osm-ws_2
Geopaparazzi & OSMフィールド調査ハンズオン
Yolp30分クッキング 2012北海道
Ad

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
  • 4. 作ったもの 2009/7/18 RejectKaigi2009 4
  • 5. 2009/7/18 RejectKaigi2009 5
  • 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