MapKit を使用して、ユーザーの現在位置を Google マップに表示するだけのアプリを作成しました。
しかし、もう少し進んで、ユーザーがマップ上に自分でポイントをプロットできるようにすることで、アプリにもう少し機能を追加したいと思います。
CoreLocation を使用すると、ユーザーがマップ上で選択した場所の座標を受信して保存することで、これが達成されると私は信じています。
私はこれを言うのが正しいですか?これをどのように実装するかについてのアイデアはありますか?リンクやチュートリアルも役に立ちます。また、この問題に関する個人的な経験/アイデアも素晴らしいでしょう.
このアプリの前にcoreLocationを実装するアプリを作成し、完全にコンパイル/実行しました..ユーザーの場所と緯度/経度を更新しませんでした。そのアプリのコードを以下に示します。
これは、基本的にすべての作業を行う AppDelegate.m のみです。
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
@synthesize window;
@synthesize viewController;
@synthesize locationManager;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
self.locationManager = [[CLLocationManager alloc]init];
if ([CLLocationManager locationServicesEnabled]) {
self.locationManager.delegate = self;
self.locationManager.distanceFilter = 100;
[self.locationManager startUpdatingLocation];
}
}
- (void)applicationWillTerminate:(UIApplication *)application
{
}
#pragma mark CLLocationManagerDelegate Methods
-(void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
MKCoordinateSpan span;
span.latitudeDelta = 0.2;
span.longitudeDelta = 0.2;
MKCoordinateRegion region;
region.span = span;
region.center = newLocation.coordinate;
[viewController.mapView setRegion:region animated:YES];
viewController.mapView.showsUserLocation = YES;
viewController.latitude.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
viewController.latitude.text = [NSString stringWithFormat:@"%f", newLocation.coordinate.longitude];
}
@end