集成百度地图过程不做讲解,直接按照官方文档一步步走即可 开发指南
效果图
- 引入头文件
#import <MapKit/MapKit.h>
#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相关所有的头文件
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
#import <BaiduMapAPI_Map/BMKMapView.h>//只引入所需的单个头文件
#import <BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的头文件
- 创建地图和定位功能
//进入普通定位态
self.locService = [[BMKLocationService alloc]init];
[self.locService startUserLocationService];
// 定位的精读 例如100米的位置 以内就算定位出你的位置 值越小越耗电
// self.locService.desiredAccuracy = 100;
// 设置当超过设定距离的时候 开启定位
self.locService.distanceFilter = 100;
self.mapView.showsUserLocation = NO;//先关闭显示的定位图层
self.mapView.userTrackingMode = BMKUserTrackingModeFollow;//设置定位的状态
self.mapView.showsUserLocation = YES;//显示定位图
// 标准地图
self.mapView.mapType = BMKMapTypeStandard;
// 地图比例尺级别,在手机上当前可使用的级别为4-21级
self.mapView.zoomLevel = 16.0;
//设定地图View能否支持旋转 只有旋转地图才会出现指南针 不知道为什么
self.mapView.rotateEnabled = NO;
self.mapView.compassPosition = CGPointMake(20,20);
// self.mapView.mapPadding = UIEdgeInsetsMake(20, 20, 0, 0);
// 26.108768, 119.30714
// CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(26.108768, 119.30714);
// BMKCoordinateRegion region ;//表示范围的结构体
// region.center = coordinate;//中心点
// region.span.latitudeDelta = 0.038325;//经度范围(设置为0.1表示显示范围为0.2的纬度范围)
// region.span.longitudeDelta = 0.028045;//纬度范围
// 设置显示区域 中心点和范围
// [self.mapView setRegion:region animated:YES];
//这只是限制了地图大小
// [self.mapView setLimitMapRegion:region];
//自定义精度圈
BMKLocationViewDisplayParam *param = [[BMKLocationViewDisplayParam alloc] init];
// 精度圈 边框颜色
param.accuracyCircleStrokeColor = [UIColor colorWithRed:119/255.0 green:181/255.0 blue:254/255.0 alpha:0.6/1.0];
///精度圈 填充颜色
param.accuracyCircleFillColor = [UIColor colorWithRed:119/255.0 green:181/255. blue:254/255.0 alpha:0.2];
param.locationViewOffsetY = 0;//偏移量
param.locationViewOffsetX = 0;
param.locationViewImgName = @"icon_center_point";
[self.mapView updateLocationViewWithParam:param];
- 创建代理销毁
-(void)viewWillAppear:(BOOL)animated
{
[self.mapView viewWillAppear];
self.mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放
self.locService.delegate = self;
}
-(void)viewWillDisappear:(BOOL)animated
{
[self.mapView viewWillDisappear];
self.mapView.delegate =