iOS百度地图定位功能iOS8+


前提:info.plist中加入:

NSLocationAlwaysUsageDescriptionYES

NSLocationWhenInUseUsageDescriptionYES



#import <UIKit/UIKit.h>

#import <BaiduMapAPI/BMapKit.h>

@interface BaiduMainViewController :UIViewController<BMKMapViewDelegate,BMKLocationServiceDelegate>

@property(strong,nonatomic)BMKLocationService *locService;

@end


BMKMapView* mapView;

- (void)viewDidLoad {

    [superviewDidLoad];

    //适配ios7

    if( ([[[UIDevicecurrentDevice] systemVersion]doubleValue]>=7.0))

    {

        self.navigationController.navigationBar.translucent = NO;

    }

    if ([[UIDevicecurrentDevice].systemVersionfloatValue] >= 8) {

        //由于IOS8中定位的授权机制改变需要进行手动授权

        CLLocationManager  *locationManager = [[CLLocationManageralloc] init];

        //获取授权认证

        [locationManager requestAlwaysAuthorization];

        [locationManager requestWhenInUseAuthorization];

    }

    mapView = [[BMKMapViewalloc]initWithFrame:CGRectMake(0, 0, 320, 480)];

    self.view =mapView;


 [ self  startLocation];
}

-(void)startLocation{

    if(_locService==nil){

        _locService=[[BMKLocationServicealloc]init];

    }

    _locService.delegate=self;

    [_locService startUserLocationService];

    mapView.userTrackingMode=BMKUserTrackingModeFollow;

}


#pragma mark BMKLocationServiceDelegate

-(void)willStartLocatingUser{

    NSLog(@"%s",__FUNCTION__);

}

-(void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{

    NSLog(@"%s",__FUNCTION__);

    //1.显示用户位置

    mapView.showsUserLocation=YES;

    //mapView.centerCoordinate=userLocation.location.coordinate;

    //2.更新用户最新位置到地图上

    [mapView updateLocationData:userLocation];

    NSLog(@"userLocation==%@",userLocation);

}

/**

 *用户方向更新后,会调用此函数

 *@param userLocation 新的用户位置

 */

-(void)didUpdateUserHeading:(BMKUserLocation *)userLocation{

    NSLog(@"%s",__FUNCTION__);

    //mapView.showsUserLocation=YES;


    [mapView updateLocationData:userLocation];

}







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值