SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a GPS×Twitter4Rでたのしい位置情報ライフ

Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用
Masakazu Muraoka
 
Api geocoding
Api geocodingApi geocoding
Api geocoding
Jun Chiba
 
Geolocation4 system
Geolocation4 systemGeolocation4 system
Geolocation4 system
Jun Chiba
 
Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209
Akira Sasaki
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125
kubo
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125
kubo
 

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

Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking Geo x html5 on MapsAPI three minutes cooking
Geo x html5 on MapsAPI three minutes cooking
 
Gdg geo2
Gdg geo2Gdg geo2
Gdg geo2
 
Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用
 
Api geocoding
Api geocodingApi geocoding
Api geocoding
 
Yolp30分クッキング 2012北海道
Yolp30分クッキング 2012北海道Yolp30分クッキング 2012北海道
Yolp30分クッキング 2012北海道
 
HexRinger needs GeoHex #gms2012
HexRinger needs GeoHex #gms2012HexRinger needs GeoHex #gms2012
HexRinger needs GeoHex #gms2012
 
Create line bot with Google Apps Script
Create line bot with Google Apps ScriptCreate line bot with Google Apps Script
Create line bot with Google Apps Script
 
Geolocation4 system
Geolocation4 systemGeolocation4 system
Geolocation4 system
 
JavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフJavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフ
 
WebGISをはじめてみる
WebGISをはじめてみるWebGISをはじめてみる
WebGISをはじめてみる
 
Googlemaps tutorial
Googlemaps tutorialGooglemaps tutorial
Googlemaps tutorial
 
Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209
 
Azureお助けサービス概要
Azureお助けサービス概要Azureお助けサービス概要
Azureお助けサービス概要
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
REST API、gRPC、GraphQL 触ってみた【2023年12月開催勉強会資料】
 
JJUG CCC 20150411 grails3 Spring-boot
JJUG CCC 20150411 grails3 Spring-bootJJUG CCC 20150411 grails3 Spring-boot
JJUG CCC 20150411 grails3 Spring-boot
 
Android study part4
Android study part4Android study part4
Android study part4
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125
 
Google for モバイル アプリ 15-00- maps apiで、かしこく地図アプリを開発しよう
Google for モバイル アプリ   15-00- maps apiで、かしこく地図アプリを開発しようGoogle for モバイル アプリ   15-00- maps apiで、かしこく地図アプリを開発しよう
Google for モバイル アプリ 15-00- maps apiで、かしこく地図アプリを開発しよう
 

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