iOS地图显示用户当前的位置

时间:2015-09-04 02:55:05

标签: objective-c mapkit currentlocation

我一直在尝试让用户的当前位置显示在我的地图上,但却无法显示。我是MapKit的新手,所以我可能错过了一些东西。

我确实收到弹出警报,要求获得使用我当前位置的权限,但实际上没有显示任何位置。

以下是代码:

标题.h:

@interface TeachersMapViewController : UIViewController <MKMapViewDelegate,  CLLocationManagerDelegate>

#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

@property (nonatomic,retain) CLLocationManager *locationManager;
@property(nonatomic, retain) IBOutlet MKMapView *mapView;


@end

实施

- (void)viewDidLoad
{

#ifdef __IPHONE_8_0
    if(IS_OS_8_OR_LATER)
    {
        [self.locationManager requestWhenInUseAuthorization];
    }
#endif

    self.locationManager.delegate=self;
   [self.locationManager startUpdatingLocation];

    [self.mapView.userLocation addObserver:self
                                forKeyPath:@"location"
                                   options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)
                                   context:NULL];    

}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式启用用户位置:

self.mapView.showsUserLocation = YES;

如果您使用模拟器,它不会显示您当前的位置,它可能在美国。 “模拟器默认情况下你会在美国显示一些位置。如果你想改变那个位置,在iOS模拟器菜单中,转到Debug -> Location -> Custom Location。在那里你可以设置纬度和经度并相应地测试应用程序。使用mapkit以及CLLocationManager