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

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

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
Kentaro Ishimaru
 
Gdg geo2
Gdg geo2Gdg geo2
Gdg geo2
Kentaro Ishimaru
 
Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Webアプリケーション開発での位置情報活用
Webアプリケーション開発での位置情報活用Masakazu Muraoka
 
Api geocoding
Api geocodingApi geocoding
Api geocodingJun Chiba
 
HexRinger needs GeoHex #gms2012
HexRinger needs GeoHex #gms2012HexRinger needs GeoHex #gms2012
HexRinger needs GeoHex #gms2012
Hironov OKUYAMA
 
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
Naoki Watanabe
 
Geolocation4 system
Geolocation4 systemGeolocation4 system
Geolocation4 systemJun Chiba
 
JavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフJavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフ
Yuko Toriyama
 
WebGISをはじめてみる
WebGISをはじめてみるWebGISをはじめてみる
WebGISをはじめてみる
Yasunori Kirimoto
 
Web os最新動向20130209
Web os最新動向20130209Web os最新動向20130209
Web os最新動向20130209Akira Sasaki
 
Azureお助けサービス概要
Azureお助けサービス概要Azureお助けサービス概要
Azureお助けサービス概要
Keiji Kamebuchi
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Hironori Sekine
 
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
Tsuyoshi Yamamoto
 
Android study part4
Android study part4Android study part4
Android study part4
shinya sakemoto
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125kubo
 
Aries Kubo081125
Aries Kubo081125Aries Kubo081125
Aries Kubo081125kubo
 
Google for モバイル アプリ 15-00- maps apiで、かしこく地図アプリを開発しよう
Google for モバイル アプリ   15-00- maps apiで、かしこく地図アプリを開発しようGoogle for モバイル アプリ   15-00- maps apiで、かしこく地図アプリを開発しよう
Google for モバイル アプリ 15-00- maps apiで、かしこく地図アプリを開発しよう
Google Cloud Platform - Japan
 

Similar to 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で、かしこく地図アプリを開発しよう
 

Recently uploaded

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 

Recently uploaded (16)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 

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