我已经设置了
self.mapView。showsUserLocation = YES;
但是,我仍然无法在Map中看到当前引脚。
我错过了什么?
的 viewDidLoad
- (void)viewDidLoad {
self.mapView.delegate = self;
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
#ifdef __IPHONE_8_0
if(IS_OS_8_OR_LATER) {
[self.locationManager requestAlwaysAuthorization];
}
#endif
[self.locationManager startUpdatingLocation];
self.mapView.showsUserLocation = YES;
[self.mapView setMapType:MKMapTypeStandard];
[self.mapView setZoomEnabled:YES];
[self.mapView setScrollEnabled:YES];
MKCoordinateRegion region;
region.center.latitude = 25.03;
region.center.longitude = 121.5;
region.span.latitudeDelta = 0.2;
region.span.longitudeDelta = 0.2;
[self.mapView setRegion:region animated:YES];
}
和 mapView
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation*)userLocation
{
double X= userLocation.coordinate.latitude;
double Y= userLocation.coordinate.longitude;
NSLog(@"%f,%f",X,Y);
CLLocationCoordinate2D currentPosition = [userLocation coordinate];
MKCoordinateRegion region =MKCoordinateRegionMakeWithDistance(currentPosition, 800, 800);
[self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES];
}
谢谢! !
iOS8的位置授权存在问题。要解决这个问题,请确保在您的信息中添加以下一个或两个键。plist文件:
- NSLocationWhenInUseUsageDescription
- NSLocationAlwaysUsageDescription
并将此部分替换为您的代码:
#ifdef __IPHONE_8_0
if(IS_OS_8_OR_LATER) {
[self.locationManager requestAlwaysAuthorization];
}
#endif
与这个:// Add this to solve a location authorization issue on iOS8
// See more at: http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/
if ([self._locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
[self._locationManager requestWhenInUseAuthorization];
}