SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
iPhone でバックグラウンド位置情報
アプリケーションを作ってみた。
by Haruyuki Seki(@hal_sk)
2010年10月23日土曜日
•関 治之
•シリウスラボ 所長
•Georepublic Japan CEO
•ジオメディアサミット 主催
hal_sk です。
2010年10月23日土曜日
位置情報とモバイルが好きです。
2010年10月23日土曜日
突然ですが
2010年10月23日土曜日
OpenStreetMapって知ってます?
2010年10月23日土曜日
自由な地理情報データを作成することを目的と
した世界的なプロジェクト
OpenStreetMapって知ってます?
2010年10月23日土曜日
①Logging
2010年10月23日土曜日
②Upload
2010年10月23日土曜日
③Edit
2010年10月23日土曜日
ライセンスフリーの地図ができる
2010年10月23日土曜日
iPhone でもログが取れます
•OSM Track
2010年10月23日土曜日
でも、OSM Track では
•Sleep 中やバックグ
ラウンド起動中にロ
グを取らない!
2010年10月23日土曜日
iOS4.0からはバックグラウ
ンドでアプリを動かせる
2010年10月23日土曜日
バックグラウンドで使える7
つの機能
• Fast App Switching
• Background Audio
• Background Location
• Background VoIP
• Task Compression
• Push Notification
• Local Notification
2010年10月23日土曜日
というわけで
2010年10月23日土曜日
自分でロガーを作ってみよう
2010年10月23日土曜日
検証したいこと
•どれくらいの精度なの?
•電池の消費は?
2010年10月23日土曜日
CLLocationManager
のメソッド
• startUpdateLocation
GPSとWi-Fi測位
• startMonitoringSignificantLocationChanges
基地局が変わったらイベント発生
• startMonitoringForRegion:desiredAccuracy
指定したエリアに入ったらイベント発生
2010年10月23日土曜日
今回はこの2つで実験
CLLocationManager
のメソッド
• startUpdateLocation
GPSとWi-Fi測位
• startMonitoringSignificantLocationChanges
基地局が変わったらイベント発生
• startMonitoringForRegion:desiredAccuracy
指定したエリアに入ったらイベント発生
2010年10月23日土曜日
使い方
LocationCheckViewController.h
@interface LocationCheckViewController
<CLLocationManagerDelegate>{
! CLLocationManager *locMan;
}
LocationCheckViewController.m
@implementation LocationCheckViewController
- (void)loggingStart{
! locMan = [[CLLocationManager alloc] init]; // ①
! locMan.delegate = self; // ②
! [locMan startUpdatingLocation];//③
! [locMan startMonitoringSignificantLocationChanges];//③’
}
CLLocationManager のインスタンスを作り(①)、
CLLocationManagerDelegate を実装した delegate を設定し(②)、
startUpdatingLocation(③) か
startMonitoringSignificantLocationChanges(③’)を呼ぶ
2010年10月23日土曜日
緯度経度の取り方
- (void)locationManager:(CLLocationManager *)manager
! didUpdateToLocation:(CLLocation *)newLocation
! ! fromLocation:(CLLocation *)oldLocation{
! NSString *log = [self makeLogText:newLocation];
! [self logText:log];
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
! [self logTextWithTime:[NSString
stringWithFormat:@"LocationManager Failed %@", [error
localizedDescription]]];
}
delegateで設定されたクラスの
-(void)locationManager:didUpdateToLocation:fromLocation:
か
-(void)locationManager:didFailWithError:
が呼ばれる。
2010年10月23日土曜日
バックグラウンド対応
•info.plist ファイルに、
Key:Required background modes
Value:App registers for location updates
を追加
2010年10月23日土曜日
完成
http://github.com/halsk/iPhone_GPS_Logger
2010年10月23日土曜日
使ってみよう!
精度をどうやって測ろうか?
2010年10月23日土曜日
山手線コンピューティング!
2010年10月23日土曜日
3周しました!
2010年10月23日土曜日
なぜ3周したか
•1周目:フォアグラウンド測位
•2周目:バックグラウンド測位
•3周目:SignificantLocation
2010年10月23日土曜日
ログを見てみましょう!
2010年10月23日土曜日
1周目:Foreground
低Accuracy 込み 低Accuracy 抜き
2010年10月23日土曜日
1周目:Foreground
低Accuracy 込み 低Accuracy 抜き
恵比寿∼大崎間でうまく取れていない
線路から数百mずれるときはあるが、概ね良好
1秒に1回くらいレスポンスあり
ログ数:3106回
※低Accurasy=誤差500m以上
2010年10月23日土曜日
2周目:Background
低Accuracy 込み 低Accuracy 抜き
2010年10月23日土曜日
2周目:Background
低Accuracy 込み 低Accuracy 抜き
バックグラウンドに回ると
精度が結構落ちる
測位回数が減る(1分待つこともあり)
ログ数:361回
2010年10月23日土曜日
3週目:Significant
2010年10月23日土曜日
3週目:Significant
精度は、誤差1km
場所自体は意外とずれてない
測位回数はわずか17回
2010年10月23日土曜日
電池消費
•1周目:15∼20%の間で消費
•2周目:5∼10%の間で消費
•3周目:1∼5%の間で消費
※[UIDevice batteryLevel] は、5%刻みでしか
取れないので正確に測れなかった
2010年10月23日土曜日
結論
•地図書く精度が必要なら、
Foreground の方がいい
•写真とったりメールみたりTwitterした
くなった時にも取り続けることができ
るので、無いよりましかな
2010年10月23日土曜日
ていうか
•My Tracks 使えばいい
よね
•バックグラウンド対応
•写真撮影やWaypointな
どのメモ機能あり
2010年10月23日土曜日
車輪の再発明
2010年10月23日土曜日
時間があればやるかも
•地図をOSMへ変更
•メモ書き、写真撮影機能
•OSMへのアップロード機能
•Waypointの追加・編集機能
•Foursquare連携とか
•iPad 対応
2010年10月23日土曜日
ありがとうございました。
http://www.slideshare.net/hal_sk/
by Haruyuki Seki(@hal_sk)
2010年10月23日土曜日

Contenu connexe

Tendances

インセプションデッキ紹介
インセプションデッキ紹介インセプションデッキ紹介
インセプションデッキ紹介
You&I
 

Tendances (20)

視線を検出したかった(第56回 コンピュータビジョン勉強会@関東)
視線を検出したかった(第56回 コンピュータビジョン勉強会@関東)視線を検出したかった(第56回 コンピュータビジョン勉強会@関東)
視線を検出したかった(第56回 コンピュータビジョン勉強会@関東)
 
スマートシティへのデジタルゲームAIの応用
スマートシティへのデジタルゲームAIの応用スマートシティへのデジタルゲームAIの応用
スマートシティへのデジタルゲームAIの応用
 
スクラムナイト#4 良いチームとは何か ~チームについて考えてみる夕べ~
スクラムナイト#4 良いチームとは何か ~チームについて考えてみる夕べ~スクラムナイト#4 良いチームとは何か ~チームについて考えてみる夕べ~
スクラムナイト#4 良いチームとは何か ~チームについて考えてみる夕べ~
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
 
サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題サマータイムとうるう秒と2038年問題
サマータイムとうるう秒と2038年問題
 
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
建設シミュレータOCSの開発 / OCS・VTC on Unity におけるROS対応機能について
 
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
Turtlebot3とrealsenseで作るお手軽移動ロボットros japan ug #23 関西勉強会
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
人工知能のための哲学塾 第零夜「概観」 資料 (全五夜+第零夜)
人工知能のための哲学塾 第零夜「概観」 資料 (全五夜+第零夜)人工知能のための哲学塾 第零夜「概観」 資料 (全五夜+第零夜)
人工知能のための哲学塾 第零夜「概観」 資料 (全五夜+第零夜)
 
[DL輪読会]Composable Deep Reinforcement Learning for Robotic Manipulation
[DL輪読会]Composable Deep Reinforcement Learning for Robotic Manipulation[DL輪読会]Composable Deep Reinforcement Learning for Robotic Manipulation
[DL輪読会]Composable Deep Reinforcement Learning for Robotic Manipulation
 
GoogleのSHA-1のはなし
GoogleのSHA-1のはなしGoogleのSHA-1のはなし
GoogleのSHA-1のはなし
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
 
落合陽一前陣速攻のスライド0131 #JILS
落合陽一前陣速攻のスライド0131 #JILS 落合陽一前陣速攻のスライド0131 #JILS
落合陽一前陣速攻のスライド0131 #JILS
 
インセプションデッキ紹介
インセプションデッキ紹介インセプションデッキ紹介
インセプションデッキ紹介
 
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
AI x WebAR: MediaPipeのハンドトラッキングを使ってみようAI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
 
20120711 WUM Redmineの使い道_公開版
20120711 WUM Redmineの使い道_公開版20120711 WUM Redmineの使い道_公開版
20120711 WUM Redmineの使い道_公開版
 
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
仕事で使うChatGPT—ディレクター・プランナーの<勉強会>
 
UXデザインワークショップ資料 by ATOMOS DESIGN
UXデザインワークショップ資料 by ATOMOS DESIGNUXデザインワークショップ資料 by ATOMOS DESIGN
UXデザインワークショップ資料 by ATOMOS DESIGN
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
 

Plus de Hal Seki

Plus de Hal Seki (20)

シビック・テクノロジーによるまちづくり 自治体トピックスセミナー
シビック・テクノロジーによるまちづくり 自治体トピックスセミナーシビック・テクノロジーによるまちづくり 自治体トピックスセミナー
シビック・テクノロジーによるまちづくり 自治体トピックスセミナー
 
ITで地域の課題解決[オープンデータ/ビッグデータ利用促進フォーラム]
ITで地域の課題解決[オープンデータ/ビッグデータ利用促進フォーラム]ITで地域の課題解決[オープンデータ/ビッグデータ利用促進フォーラム]
ITで地域の課題解決[オープンデータ/ビッグデータ利用促進フォーラム]
 
オープンプロセスで変える調達改革
オープンプロセスで変える調達改革オープンプロセスで変える調達改革
オープンプロセスで変える調達改革
 
Cf jー輪之内マッピングパーティ
Cf jー輪之内マッピングパーティCf jー輪之内マッピングパーティ
Cf jー輪之内マッピングパーティ
 
浪江町タブレット事業:事業者説明会資料
浪江町タブレット事業:事業者説明会資料浪江町タブレット事業:事業者説明会資料
浪江町タブレット事業:事業者説明会資料
 
【浪江町資料】0425タブレット事業の進め方について
【浪江町資料】0425タブレット事業の進め方について【浪江町資料】0425タブレット事業の進め方について
【浪江町資料】0425タブレット事業の進め方について
 
浪江町の現状-浪江町フェローシップ説明資料 2014年4月11日
浪江町の現状-浪江町フェローシップ説明資料 2014年4月11日浪江町の現状-浪江町フェローシップ説明資料 2014年4月11日
浪江町の現状-浪江町フェローシップ説明資料 2014年4月11日
 
浪江フェローシップ説明会 20140411
浪江フェローシップ説明会 20140411浪江フェローシップ説明会 20140411
浪江フェローシップ説明会 20140411
 
オープンデータを使った、ギークによるオープンガバメントの推進 Jaws-ug和歌山
オープンデータを使った、ギークによるオープンガバメントの推進 Jaws-ug和歌山オープンデータを使った、ギークによるオープンガバメントの推進 Jaws-ug和歌山
オープンデータを使った、ギークによるオープンガバメントの推進 Jaws-ug和歌山
 
Think together, make together code for japan
Think together, make together   code for japanThink together, make together   code for japan
Think together, make together code for japan
 
あなたも地域のコミッターに。Osc tokyo 2014 spring
あなたも地域のコミッターに。Osc tokyo 2014 springあなたも地域のコミッターに。Osc tokyo 2014 spring
あなたも地域のコミッターに。Osc tokyo 2014 spring
 
デブサミ シビックテックワールドツアー
デブサミ シビックテックワールドツアーデブサミ シビックテックワールドツアー
デブサミ シビックテックワールドツアー
 
Code for Japan 紹介−自治体勉強会 2014年2月6日
Code for Japan 紹介−自治体勉強会 2014年2月6日Code for Japan 紹介−自治体勉強会 2014年2月6日
Code for Japan 紹介−自治体勉強会 2014年2月6日
 
Code for japan 活動紹介 at WIDAシンポジウム
Code for japan 活動紹介 at WIDAシンポジウムCode for japan 活動紹介 at WIDAシンポジウム
Code for japan 活動紹介 at WIDAシンポジウム
 
Code for Japan の活動紹介と成り立ち
Code for Japan の活動紹介と成り立ちCode for Japan の活動紹介と成り立ち
Code for Japan の活動紹介と成り立ち
 
Code for japan 進め方 2013年11月
Code for japan 進め方   2013年11月Code for japan 進め方   2013年11月
Code for japan 進め方 2013年11月
 
Code for America Summit 報告会
Code for America Summit 報告会Code for America Summit 報告会
Code for America Summit 報告会
 
ともに考え、ともにつくる社会 オープンガバメントシンポジウム in 東京大学公共政策大学院
ともに考え、ともにつくる社会 オープンガバメントシンポジウム in 東京大学公共政策大学院ともに考え、ともにつくる社会 オープンガバメントシンポジウム in 東京大学公共政策大学院
ともに考え、ともにつくる社会 オープンガバメントシンポジウム in 東京大学公共政策大学院
 
ともに考え、ともにつくる社会 Osc.gov プレゼンテーション
ともに考え、ともにつくる社会 Osc.gov プレゼンテーションともに考え、ともにつくる社会 Osc.gov プレゼンテーション
ともに考え、ともにつくる社会 Osc.gov プレゼンテーション
 
Code for japan in Osaka meeting
Code for japan in Osaka meetingCode for japan in Osaka meeting
Code for japan in Osaka meeting
 

Dernier

Dernier (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

iPhone でバックグラウンド位置情報アプリケーションを作ってみた。