1

我创建了一个应用程序,它使用 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
4

1 回答 1

1

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

由于您在在线搜索教程时没有任何运气,这里有一些可能会有所帮助的术语

MKAnnotation:你用来在地图上标记位置的东西(一个图钉、一个标志、一些文本) UIGestureRecognizer:使用其中一个来找出用户何时触摸了地图,寻找触摸并按住事件是一个好兆头,他们想要标记它,因为触摸和拖动将用于在 MKMapPoint周围移动地图:iOS 中使用的平面地球地图上的一个地方。请记住,这些与 CLLocationCoordinate2D 的经度和纬度不同,但您可以轻松地在它们之间进行转换。

于 2012-08-28T01:04:01.273 回答