地理标记/绘图 MapKit 核心定位

Posted

技术标签:

【中文标题】地理标记/绘图 MapKit 核心定位【英文标题】:Geotagging/Plotting MapKit Corelocation 【发布时间】:2012-08-16 17:48:45 【问题描述】:

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

【问题讨论】:

我不明白你的确切问题是什么。顺便说一句,在 didUpdateToLocation 中,您仅将 viewController.latitude.text 设置为纬度,然后设置为经度。 哦,是的,感谢您在此处进行的小调整,因为我只是在将其全部输入后复制并粘贴了它(没有进行更改以进行调试,因为运行时没有任何反应)。我的问题基本上是获得有关如何让我的应用程序在 MapKit 等地图上绘制点的帮助。我从哪里开始,需要什么?谢谢 【参考方案1】:

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

由于您在网上搜索教程时运气不佳,这里有一些可能会有所帮助的术语

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

【讨论】:

以上是关于地理标记/绘图 MapKit 核心定位的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 3.0 MapKit - 同一位置的多个注释

SwiftUI:如何在 MapKit 中自定义地理区域的位置?

iOS核心笔记—MapKit框架-基础

mapKit:在用户选择注释标记后执行 segue

iOS核心笔记—CoreLocation框架-基础

核心位置,MapKit 错误