iOS 显示用户当前位置的地图
iOS map showing a user's current locaiton
我一直在尝试让用户的当前位置显示在我的地图上,但未能成功。我是 MapKit 的新手,所以我可能遗漏了一些东西。
我确实收到弹出警报,要求获得使用我当前位置的权限,但实际上没有显示任何位置。
代码如下:
Header.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];
}
如有任何帮助,我们将不胜感激。
您可以通过以下方式启用用户位置:
self.mapView.showsUserLocation = YES;
如果您使用的是模拟器,它不会显示您的当前位置,它可能在美国。 " 默认情况下,模拟器会显示美国的一些位置。如果你想更改该位置,请在 iOS 模拟器菜单中,转到 Debug -> Location -> Custom Location
。你可以在那里设置纬度和经度并测试应用程序相应地。这适用于 mapkit
也适用于 CLLocationManager
"
我一直在尝试让用户的当前位置显示在我的地图上,但未能成功。我是 MapKit 的新手,所以我可能遗漏了一些东西。
我确实收到弹出警报,要求获得使用我当前位置的权限,但实际上没有显示任何位置。
代码如下:
Header.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];
}
如有任何帮助,我们将不胜感激。
您可以通过以下方式启用用户位置:
self.mapView.showsUserLocation = YES;
如果您使用的是模拟器,它不会显示您的当前位置,它可能在美国。 " 默认情况下,模拟器会显示美国的一些位置。如果你想更改该位置,请在 iOS 模拟器菜单中,转到 Debug -> Location -> Custom Location
。你可以在那里设置纬度和经度并测试应用程序相应地。这适用于 mapkit
也适用于 CLLocationManager
"