iOS8 高德地图SDK MAMapView无法定位的问题

iOS8 高德地图SDK MAMapView无法定位的问题
2014-09-24       0  个评论    来源:johnzhjfly的专栏   
收藏     我要投稿

在iOS8的设备上,使用高德地图SDK你会发现MAMapView里的回调位置是空的。

?
1
2
3
4
5
6
-( void )mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation
{
     CLLocation *currentLocation = userLocation.location;
     if (currentLocation) {
     }
}

在iOS8上currentLocation是空的,导致定位失败了。我们知道苹果在iOS8上对定位进行了大幅度优化,可以支持室内定位,常去地点统计,楼层等。

高德失败的原因可能是未对iOS8做适配。

解决方法是:

1.工程的info.plist添加NSLocationWhenInUseDescription,NSLocationAlwaysUsageDescription字段,不同的字段对应的方法不同

2.在AppDelegate.m中声明个CLLocationManager私有变量,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@interface AppDelegate()<cllocationmanagerdelegate>
{
     UINavigationController *_navController;
     CLLocationManager      *_locationmanager;
}
 
@end
 
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     [UIApplication sharedApplication].idleTimerDisabled = TRUE;
     
     _locationmanager = [[CLLocationManager alloc] init];
     [_locationmanager requestAlwaysAuthorization];        //NSLocationAlwaysUsageDescription
     [_locationmanager requestWhenInUseAuthorization];     //NSLocationWhenInUseDescription
     _locationmanager.delegate = self;
}</cllocationmanagerdelegate>

这样在MAMapView的回调

?
1
-( void )mapView:(MAMapView*)mapView didUpdateUserLocation:(MAUserLocation*)userLocation updatingLocation:(BOOL)updatingLocation
就可以正常获取用户当前位置了,此时userLocation.location是有值的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值