我创建了一个应用程序,只需使用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
答案 0 :(得分:1)
您是已注册的iOS开发者吗? Apple的代码示例包含一些地图应用程序,它们应该可以帮助您入门。
由于您在网上搜索教程时没有任何运气,这里有一些可能有用的术语
MKAnnotation :用于在地图上标记位置的内容(图钉,标记,文字) UIGestureRecognizer :使用其中一个来查找用户触摸地图的时间,查找触摸并保持事件作为他们想要标记的好兆头,因为触摸和拖动将用于移动地图 MKMapPoint :iOS中使用的地球平面地图上的一个位置。请记住,这些与CLLocationCoordinate2D的经度和纬度不同,但您可以轻松地在它们之间进行转换。