百度地图 (定位、回到定位点)

百度地图功能有很多,可能刚用的时候会有一些烦恼,但是多看几遍就会觉得容易很多(我靠,感觉自己好啰嗦,想冒充大神),好吧,我其实现在也只是在项目中用过百度地图的一些简单功能,其它的还待研究,今天就说说最基础的定位(这么基础的你还说,是不是看不起我们啊,靠,冤枉啊,我当初做的时候还是有碰到问题的)。

下面正经的介绍:

1、当然是 添加百度地图协议了 <BMKMapViewDelegate,BMKLocationServiceDelegate>

2、定义地图和定位服务属性

@property (nonatomic, strong) BMKMapView *showMapView;

@property (nonatomic, strong) BMKLocationService *showLocationService;

@property (nonatomic, assign) CLLocationCoordinate2D coor;


3、当然必不可少的代理,代理要在viewWillAppear里设置,在viewWillDisappear里取消代理

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    self.showMapView.delegate = self;

    self.showLocationService.delegate = self;


    [self.showLocationService startUserLocationService];//info.plist 里面要添加两句话 NSLocationWhenInUseUsageDescription,这句话不能少啊,要不然不能开始定位啊,当时不晓得是不是眼瞎喽,

看api时没看见这句话,搞得郁闷的很,老是不能实现定位

    self.showMapView.showsUserLocation = YES;

}

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    

    //把代理取消

    self.showMapView.delegate = nil;

    self.showLocationService.delegate = nil;

    

    [self.showLocationService stopUserLocationService]; //同样,你们也知道这句话也需要了吧,百度地图就是这么横

    self.showMapView.showsUserLocation = NO;

    

}


4、怎么还不说重点啊,晕,一直说的都是我出现过的错误啊,什么,你不会遇见,好吧,我再悄悄的写点

下面就要添加手机定位了,添加代码,定位设置

    self.showLocationService = [[BMKLocationService alloc]init];

    //设置定位精确度

    [BMKLocationService setLocationDesiredAccuracy:kCLLocationAccuracyHundredMeters];

     //指定最小距离更新()

    [BMKLocationService setLocationDistanceFilter:100.f];

我靠,还没到重点?
其实下面实现定位代理方法就行了,感觉没什么可说

/**

 *  处理坐标更新

 *

 *  @return 当前手机位置

 */

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

    [self.showMapView updateLocationData:userLocation];

    self.showMapView.centerCoordinate = userLocation.location.coordinate;

    self.coor = [userLocation.location coordinate];

    

    //放大地图到自身的经纬度位置

    BMKCoordinateRegion viewRegin = BMKCoordinateRegionMake(self.coor, BMKCoordinateSpanMake(0.2f, 0.2f));

    BMKCoordinateRegion adjustedRegin = [self.showMapView regionThatFits:viewRegin];

    [self.showMapView setRegion:adjustedRegin animated:YES];

}

4、不好意思,太简单了,就再加个回到定位点吧(这么少,太失望了。亲,不退货哟)

在地图上加一个按钮,点击使定位点回到屏幕中心位置

//添加返回定位点按钮代码

    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];

    [backBtn setImage:[UIImage imageNamed:@"ditufanhui_"] forState:UIControlStateNormal];

    backBtn.frame =CGRectMake(10, self.view.frame.size.height-90, 40, 40);

    [self.view addSubview:backBtn];

    [self.view bringSubviewToFront:backBtn];

    [backBtn addTarget:self action:@selector(comeBackLocation) forControlEvents:UIControlEventTouchUpInside];


//在实现按钮方法就行了,使定位点坐标返回屏幕中心点

- (void)comeBackLocation {

    [self.showMapView setCenterCoordinate:self.coor animated:YES];

}

百度地图博大精深,岂是一朝一夕能有所成,这不最近更出一新事,无人驾驶汽车,不过有点不敢坐啊,万一想去医院整个容,

坐百度汽车,直接锁车里拉到百度排名最贵的医院怎么办呐,好害怕的赶脚,敲个代码赚钱不容易啊


我创建了一个交流群,大家可以加一下一起交流  进修Android~iOS+“ 群:237311061  大神在里面,而且群里面会分享有一些iOS课件


你可能感兴趣的:(百度地图 (定位、回到定位点))