地理标记/绘图MapKit Corelocation

时间:2012-08-16 17:48:46

标签: iphone xcode core-location mapkit

我创建了一个应用程序,只需使用MapKit在谷歌地图上显示用户的当前位置。

但是我现在想进一步向应用程序添加更多功能,允许用户自己在地图上绘制点。

我不知何故相信使用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

1 个答案:

答案 0 :(得分:1)

您是已注册的iOS开发者吗? Apple的代码示例包含一些地图应用程序,它们应该可以帮助您入门。

由于您在网上搜索教程时没有任何运气,这里有一些可能有用的术语

MKAnnotation :用于在地图上标记位置的内容(图钉,标记,文字) UIGestureRecognizer :使用其中一个来查找用户触摸地图的时间,查找触摸并保持事件作为他们想要标记的好兆头,因为触摸和拖动将用于移动地图 MKMapPoint :iOS中使用的地球平面地图上的一个位置。请记住,这些与CLLocationCoordinate2D的经度和纬度不同,但您可以轻松地在它们之间进行转换。