Upload
hal-seki
View
14.144
Download
4
Embed Size (px)
Citation preview
iPhone でバックグラウンド位置情報アプリケーションを作ってみた。
by Haruyuki Seki(@hal_sk)
2010年10月23日土曜日
バックグラウンドで使える7つの機能
• Fast App Switching• Background Audio• Background Location• Background VoIP• Task Compression• Push Notification• Local Notification
2010年10月23日土曜日
CLLocationManagerのメソッド
• startUpdateLocationGPSとWi-Fi測位
• startMonitoringSignificantLocationChanges基地局が変わったらイベント発生
• startMonitoringForRegion:desiredAccuracy指定したエリアに入ったらイベント発生
2010年10月23日土曜日
今回はこの2つで実験
CLLocationManagerのメソッド
• startUpdateLocationGPSと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日土曜日
1周目:Foreground低Accuracy 込み 低Accuracy 抜き
恵比寿~大崎間でうまく取れていない線路から数百mずれるときはあるが、概ね良好
1秒に1回くらいレスポンスありログ数:3106回
※低Accurasy=誤差500m以上
2010年10月23日土曜日
2周目:Background低Accuracy 込み 低Accuracy 抜き
バックグラウンドに回ると精度が結構落ちる
測位回数が減る(1分待つこともあり)ログ数:361回
2010年10月23日土曜日
電池消費
•1周目:15~20%の間で消費•2周目:5~10%の間で消費•3周目:1~5%の間で消費
※[UIDevice batteryLevel] は、5%刻みでしか取れないので正確に測れなかった
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日土曜日