Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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
• Pu...
というわけで
2010年10月23日土曜日
自分でロガーを作ってみよう
2010年10月23日土曜日
検証したいこと
•どれくらいの精度なの?
•電池の消費は?
2010年10月23日土曜日
CLLocationManager
のメソッド
• startUpdateLocation
GPSとWi-Fi測位
• startMonitoringSignificantLocationChanges
基地局が変わったらイベント発生
• sta...
今回はこの2つで実験
CLLocationManager
のメソッド
• startUpdateLocation
GPSとWi-Fi測位
• startMonitoringSignificantLocationChanges
基地局が変わったらイ...
使い方
LocationCheckViewController.h
@interface LocationCheckViewController
<CLLocationManagerDelegate>{
! CLLocationManager ...
緯度経度の取り方
- (void)locationManager:(CLLocationManager *)manager
! didUpdateToLocation:(CLLocation *)newLocation
! ! fromLoca...
バックグラウンド対応
•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=誤差50...
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日土曜日
Upcoming SlideShare
Loading in …5
×

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

17,800 views

Published on

iPhone の CoreLocation フレームワークを使って、バックグラウンドで動作するジオログアプリケーションを作ってみました。

Published in: Technology, Business
  • Be the first to comment

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

  1. 1. iPhone でバックグラウンド位置情報 アプリケーションを作ってみた。 by Haruyuki Seki(@hal_sk) 2010年10月23日土曜日
  2. 2. •関 治之 •シリウスラボ 所長 •Georepublic Japan CEO •ジオメディアサミット 主催 hal_sk です。 2010年10月23日土曜日
  3. 3. 位置情報とモバイルが好きです。 2010年10月23日土曜日
  4. 4. 突然ですが 2010年10月23日土曜日
  5. 5. OpenStreetMapって知ってます? 2010年10月23日土曜日
  6. 6. 自由な地理情報データを作成することを目的と した世界的なプロジェクト OpenStreetMapって知ってます? 2010年10月23日土曜日
  7. 7. ①Logging 2010年10月23日土曜日
  8. 8. ②Upload 2010年10月23日土曜日
  9. 9. ③Edit 2010年10月23日土曜日
  10. 10. ライセンスフリーの地図ができる 2010年10月23日土曜日
  11. 11. iPhone でもログが取れます •OSM Track 2010年10月23日土曜日
  12. 12. でも、OSM Track では •Sleep 中やバックグ ラウンド起動中にロ グを取らない! 2010年10月23日土曜日
  13. 13. iOS4.0からはバックグラウ ンドでアプリを動かせる 2010年10月23日土曜日
  14. 14. バックグラウンドで使える7 つの機能 • Fast App Switching • Background Audio • Background Location • Background VoIP • Task Compression • Push Notification • Local Notification 2010年10月23日土曜日
  15. 15. というわけで 2010年10月23日土曜日
  16. 16. 自分でロガーを作ってみよう 2010年10月23日土曜日
  17. 17. 検証したいこと •どれくらいの精度なの? •電池の消費は? 2010年10月23日土曜日
  18. 18. CLLocationManager のメソッド • startUpdateLocation GPSとWi-Fi測位 • startMonitoringSignificantLocationChanges 基地局が変わったらイベント発生 • startMonitoringForRegion:desiredAccuracy 指定したエリアに入ったらイベント発生 2010年10月23日土曜日
  19. 19. 今回はこの2つで実験 CLLocationManager のメソッド • startUpdateLocation GPSとWi-Fi測位 • startMonitoringSignificantLocationChanges 基地局が変わったらイベント発生 • startMonitoringForRegion:desiredAccuracy 指定したエリアに入ったらイベント発生 2010年10月23日土曜日
  20. 20. 使い方 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日土曜日
  21. 21. 緯度経度の取り方 - (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日土曜日
  22. 22. バックグラウンド対応 •info.plist ファイルに、 Key:Required background modes Value:App registers for location updates を追加 2010年10月23日土曜日
  23. 23. 完成 http://github.com/halsk/iPhone_GPS_Logger 2010年10月23日土曜日
  24. 24. 使ってみよう! 精度をどうやって測ろうか? 2010年10月23日土曜日
  25. 25. 山手線コンピューティング! 2010年10月23日土曜日
  26. 26. 3周しました! 2010年10月23日土曜日
  27. 27. なぜ3周したか •1周目:フォアグラウンド測位 •2周目:バックグラウンド測位 •3周目:SignificantLocation 2010年10月23日土曜日
  28. 28. ログを見てみましょう! 2010年10月23日土曜日
  29. 29. 1周目:Foreground 低Accuracy 込み 低Accuracy 抜き 2010年10月23日土曜日
  30. 30. 1周目:Foreground 低Accuracy 込み 低Accuracy 抜き 恵比寿∼大崎間でうまく取れていない 線路から数百mずれるときはあるが、概ね良好 1秒に1回くらいレスポンスあり ログ数:3106回 ※低Accurasy=誤差500m以上 2010年10月23日土曜日
  31. 31. 2周目:Background 低Accuracy 込み 低Accuracy 抜き 2010年10月23日土曜日
  32. 32. 2周目:Background 低Accuracy 込み 低Accuracy 抜き バックグラウンドに回ると 精度が結構落ちる 測位回数が減る(1分待つこともあり) ログ数:361回 2010年10月23日土曜日
  33. 33. 3週目:Significant 2010年10月23日土曜日
  34. 34. 3週目:Significant 精度は、誤差1km 場所自体は意外とずれてない 測位回数はわずか17回 2010年10月23日土曜日
  35. 35. 電池消費 •1周目:15∼20%の間で消費 •2周目:5∼10%の間で消費 •3周目:1∼5%の間で消費 ※[UIDevice batteryLevel] は、5%刻みでしか 取れないので正確に測れなかった 2010年10月23日土曜日
  36. 36. 結論 •地図書く精度が必要なら、 Foreground の方がいい •写真とったりメールみたりTwitterした くなった時にも取り続けることができ るので、無いよりましかな 2010年10月23日土曜日
  37. 37. ていうか •My Tracks 使えばいい よね •バックグラウンド対応 •写真撮影やWaypointな どのメモ機能あり 2010年10月23日土曜日
  38. 38. 車輪の再発明 2010年10月23日土曜日
  39. 39. 時間があればやるかも •地図をOSMへ変更 •メモ書き、写真撮影機能 •OSMへのアップロード機能 •Waypointの追加・編集機能 •Foursquare連携とか •iPad 対応 2010年10月23日土曜日
  40. 40. ありがとうございました。 http://www.slideshare.net/hal_sk/ by Haruyuki Seki(@hal_sk) 2010年10月23日土曜日

×