【发布时间】:2014-06-12 18:54:03
【问题描述】:
我不明白 CLLocationManager 如何获取我当前的位置坐标?如果我不调用 [locationManager startUpdatingLocation] 并且不在 locationManager.location.coordinate 中设置参数。
ViewController.h
@interface ViewController : UIViewController <MKMapViewDelegate, CLLocationManagerDelegate>
{
CLLocationManager *locationManager;
}
@property (weak, nonatomic) IBOutlet MKMapView* mapView;
@end
ViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
self.mapView.delegate = self;
[self.mapView setShowsUserLocation:YES];
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
}
-(void) mapView:(MKMapView *) mv didAddAnnotationViews:(NSArray *)views {
MKCoordinateRegion region;
region = MKCoordinateRegionMakeWithDistance(locationManager.location.coordinate, 1000, 1000);
[mv setRegion:region animated:YES];
}
【问题讨论】:
-
不清楚你的问题是什么。我建议您对其进行编辑,以包含一个明确说明的问题,该问题将产生一个简洁的答案。
-
它可能是之前执行的缓存值。查看 locationManager.location.timestamp。它甚至可能是由于将地图视图的 showUserLocation 设置为 YES 造成的。此外,如果您使用地图视图显示用户位置,则不需要 CLLocationManager。
标签: ios mapkit cllocationmanager