RSS

iPhone:iThereminはやっぱりコンパスか!?

前々エントリの続きです.元アカデミック畑の人間としては,仮説を立てたならっということで検証してみた.やったことは簡単,コンパスの数値は故意に変えられるのかです.

まずは,コンパスを使うための準備をする.以下のようなhファイルを作成する.ここで,CoreLocationフレームワークを忘れずに読み込んでおく.
#import < UIKit/UIKit.h >
#import < CoreLocation/CoreLocation.h >
@interface sampleCompassViewController : UIViewController
< cllocationmanagerdelegate >
{
CLLocationManager *manager;
}
@end
そして,viewDidLoad内にて,
manager = [[CLLocationManager alloc] init];
if ( [manager locationServicesEnabled] == YES)
{
manager.delegate = self;
[manager startUpdatingHeading];
}
として,デリゲートを設定する.
- (void)locationManager:(CLLocationManager *)manager
didUpdateHeading:(CLHeading *)newHeading
{
// trueHeading, magneticHeading, geomagnetic data (x, y, z)
NSLog(@"%f %f %f %f %f", newHeading.trueHeading, newHeading.magneticHeading,
newHeading.x, newHeading.y, newHeading.z);
}

これを実機にてビルドして試してみたけど,やり方によってはgeomagnetic dataって変わるもんやね.真実?は分からないけど,アプリのコンセプトにアイディアは脱帽です.1200円取ってもバチは当たらないわ.このサンプルソース(3GS専用)です.遊びたい人はどうぞ.

Bookmark and Share

0 コメント: