介绍
本篇文章给大家分享的是有关怎么在iOS中实现百度地图定位签到功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强>一、在APPdelegate。米文件中引入:强>
# import & lt; BaiduMapAPI_Base/BMKBaseComponent.h> # import & lt; BMKLocationKit/BMKLocationComponent.h>
加入功能代码:
# pragma mark 百度地图设置 安康;(空白)configBaiduMap { ,NSString * ak =, @" xxxx"; ,BMKMapManager * mapManager =, [[BMKMapManager alloc], init);=,,self.mapManager  mapManager; ,BOOL ret =, [mapManager 开始:ak generalDelegate: nil); sharedInstance], [[BMKLocationAuth checkPermisionWithKey: ak authDelegate:自我); (!,if  ret), { NSLog才能(@" manager  start 失败!“); }大敌; }
<强>二,在用到地图定位功能的viewController中强>
# import & lt; BMKLocationKit/BMKLocationComponent.h> # import & lt; BaiduMapAPI_Base/BMKBaseComponent.h>//引入基地相关所有的头文件 # import & lt; BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
遵循协议<代码> & lt; BMKMapViewDelegate, BMKLocationManagerDelegate> 代码>
声明全局变量
@property (原子,,强烈),BMKUserLocation * userLocation;,//当前位置对象 @property (原子,,强烈),BMKLocationManager * locationManager;/* * locationManager */@property (原子,,强烈),BMKMapView * mapView;/* *,百度地图*///@property (原子,强),BMKPointAnnotation *, annotation ,/* *,标记*/@property (原子,,强烈),NSMutableArray * annotationArr;/* *,标记数组*/@property (原子,,强烈),NSMutableArray * circleArr;/* *,圆形数组*/
地图SDK文档中建议在以下代码中如此设置,目的是控制内存
安康;(空白)那些:(BOOL) animated { ,(super 那些:动画); ,[_mapView 那些];=,_mapView.delegate 自我; } 安康;(空白)viewWillDisappear:(BOOL) animated { ,(super viewWillDisappear:动画); ,[_mapView viewWillDisappear];=,_mapView.delegate 零; } 安康;(空白)dealloc { ,if (_mapView), { 时间=_mapView 才能;零; ,} }
初始化数组,这两个数组在接下来会用到
安康;(NSMutableArray *) annotationArr { , ,if (! _annotationArr), { 时间=_annotationArr 才能;[NSMutableArray 数组); ,} ,return _annotationArr; } 安康;(NSMutableArray *) circleArr { ,if (! _circleArr), { 时间=_circleArr 才能;[NSMutableArray 数组); ,} ,return _circleArr; }
添加地图视图
# pragma mark 添加地图 安康;(空白)addSignMapBgView { ,if (! self.mapBgView), { UIView 才能;* mapBgView =, (UIView 新); 时间=self.mapBgView 才能;mapBgView; 时间=mapBgView.backgroundColor 才能;[CommUtls colorWithHexString APP_BgColor):; (才能self addSubview mapBgView):; (才能mapBgView makeConstraints: ^ (MASConstraintMaker *), { ,,make.top.equalTo (self.tipView.bottom); ,,make.left.right.bottom.equalTo (0); ,,}]; ,, _mapView 才能=,[[BMKMapView alloc], initWithFrame: CGRectZero);//,,_mapView.delegate =,自我; ,,(_mapView setZoomLevel: 21);//精确到5米 时间=_mapView.showsUserLocation 才能;是的;//显示定位图层 (才能mapBgView addSubview _mapView):; (才能_mapView makeConstraints: ^ (MASConstraintMaker *), { ,,make.edges.equalTo (0); ,,}]; 时间=_mapView.userTrackingMode 才能;BMKUserTrackingModeNone; ,, ,} }
初始化地图定位:这里我用的是一次定位而没有选择持续定位。
# pragma mark 初始化locationManager 安康;(空白)initUserLocationManager { ,//因为mapView是在一个分离出来的视图中创建的,所以在这里将signSetTypeView中的mapView赋给当前viewcontroller的mapView;=,,self.mapView  self.mainView.signSetTypeView.mapView;=,self.mapView.delegate 自我;//,self.annotation =, [[BMKPointAnnotation alloc], init); , ,//self.mapView是BMKMapView对象 ,//精度圈设置 ,BMKLocationViewDisplayParam * param =, [[BMKLocationViewDisplayParam alloc], init); ,//设置显示精度圈,默认是的=,param.isAccuracyCircleShow 是的; ,//精度圈,边框颜色=,param.accuracyCircleStrokeColor [UIColor colorWithRed: 242/255.0 格林:129/255.0 蓝色:126/255.0 α:1]; ,//精度圈,填充颜色 null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在iOS中实现百度地图定位签到功能