iPhoneのGPSやWifi(iPod touchも可)を使って現在地の緯度経度を取得する簡単な方法です。
今回は簡単に"Window-based Application"のテンプレートを使った例です。
"<プロジェクト名>AppDelegate.h"へヘッダファイルとプロトコルの追加する際の例
・"CoreLocation/CoreLocation.h" をインポートする。
・プロトコルへ"CLLocationManagerDelegate"を追加する。
#import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> @interface testGPSAppDelegate : NSObject <UIApplicationDelegate, CLLocationManagerDelegate> { UIWindow *window; } @property (nonatomic, retain) IBOutlet UIWindow *window; @end
<プロジェクト名>AppDelegate.m"で処理する際の例
・CLLocationManagerのインスタンスを作成し、初期化処理をする。
・startUpdatingLocationメソッドで位置情報の取得を開始する。
・位置情報の取得に成功した場合は、didUpdateToLocationメソッドが実行される。
・位置情報の取得に失敗した場合は、didFailWithErrorメソッドが実行される。
#import "testGPSAppDelegate.h" @implementation testGPSAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { [window makeKeyAndVisible]; // CLLocationManagerのインスタンスを作成 CLLocationManager *locationManager = [[CLLocationManager alloc] init]; if ([locationManager locationServicesEnabled]) { // ロケーションサービスが利用できる場合 locationManager.delegate = self; [locationManager startUpdatingLocation]; } else { // ロケーションサービスが利用できない場合 } } - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { // 緯度経度取得に成功した場合 CLLocationCoordinate2D coordinate = newLocation.coordinate; CLLocationDegrees latitude = coordinate.latitude; // 緯度 CLLocationDegrees longitude = coordinate.longitude; // 経度 // 試しにNSLogで出力 NSLog(@"%f,%f", latitude, longitude); } - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error{ // 緯度経度取得に失敗した場合 } - (void)dealloc { [window release]; [super dealloc]; } @end
ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング
- 作者: 徳井直生,Mehdi Hercberg
- 出版社/メーカー: ワークスコーポレーション
- 発売日: 2009/05/11
- メディア: 単行本
- 購入: 2人 クリック: 43回
- この商品を含むブログ (20件) を見る