地図アプリはモバイルと相性が良いアプリといえると思います。
地図情報取得可能な場所であればどこでも使用可能である地図アプリは
iPhoneアプリを開発する上では魅力的な分野の1つではないでしょうか。
地図アプリの開発では
①GPS機能の実装
②GoogleMapsのような外部アプリとの連携の実装
が必要となります。
GPS機能実装については
1.位置情報測定の準備
2.位置情報の測定
3.位置情報測定結果の通知
4.位置情報測定の停止
の手順で行います。
//************************************************
//! 現在位置を取得する
//================================================
-(IBAction) pressedNowPoint:(id)sender{
// ロケーション終了
if(isLocation){
[locationButton setTitle:@"現在地の取得" forState:UIControlStateNormal];
isLocation = FALSE;
[locationManager stopUpdatingLocation];
}
// ロケーション開始
else{
locationManager.delegate = self;
[locationButton setTitle:@"取得を停止" forState:UIControlStateNormal];
isLocation = TRUE;
[locationManager startUpdatingLocation];
}
}
//************************************************
//! グーグルマップを起動する
//================================================
-(IBAction) pressedLaunchGoogleMap:(id)sender{
UIApplication *app; // アプリケーション
NSString *strURL; // URL文字列
// ロケーション終了
if(isLocation){
[locationManager stopUpdatingLocation];
}
// googleマップ起動
strURL = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%@,%@&daddr=akihabara", latitudeText.text, longitudeText.text];
app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:strURL]];
}
//************************************************
//! 現在の位置を取得する
//================================================
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
latitudeText.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
longitudeText.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.longitude];
altitudeText.text = [NSString stringWithFormat:@"%f", newLocation.altitude];
if([googleButton isHidden]){
[googleButton setHidden:FALSE];
}
}
//************************************************
//! 位置取得失敗
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error{
UIAlertView
*alert = [[UIAlertView alloc] initWithTitle:@"error"
message:@"error"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
まだ調べたりない部分がありますので、更に調べて記録してきます。
今日はここまで
お、ようやく形になりそうですね。
返信削除成果物のスクリーンショットが待ち遠しいです。
GPSとマップを連動させれば簡易カーナビみたいなことも
返信削除できるんやろうか。
GoogleマップAPIで出発地と目的地を指定すれば
道筋が返ってくるようなのがあったはず。