iOS百度地图 定位的实现


在初始化地图的时候,也就是在viewDidload里面是这样的
[java]  view plain copy
  1. mapView.showsUserLocation = YES;  
  2. if (mapView.userLocation.location != nil)  
  3.     {  
  4.         NSLog(@"定位成功");  
  5.         coor = [[mapView.userLocation location] coordinate];  
  6.         NSLog(@"%f",coor.latitude);  
  7.         NSLog(@"%f",coor.longitude);  
  8.     }  
  9.     BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake(coor, BMKCoordinateSpanMake(0.02f,0.02f));  
  10.     BMKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion];  
  11.     [mapView setRegion:adjustedRegion animated:YES];  

一直以为是这样的呢,因为设定了showUserLocation 在去取到当前的userLocation就好了呢,这样做是不会立马就定位到的,它内部的实现是在子线程去定位,
然后通过代理方法去更新当前的用户位置的,好晕啊,仔细一找 ,就找到了这个更新用户当前位置的代理方法
[java]  view plain copy
  1. /** 
  2.  *用户位置更新后,会调用此函数 
  3.  *@param mapView 地图View 
  4.  *@param userLocation 新的用户位置 
  5.  */  
  6. - (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation;  

那么就去实现它好了,这个时候应该是定位到了用户的位置了,也就是这个userLocation了
[java]  view plain copy
  1. #pragma mark mapViewDelegate 代理方法  
  2. - (void)mapView:(BMKMapView *)mapView1 didUpdateUserLocation:(BMKUserLocation *)userLocation  
  3. {  
  4.     BMKCoordinateRegion region;  
  5.     region.center.latitude  = userLocation.location.coordinate.latitude;  
  6.     region.center.longitude = userLocation.location.coordinate.longitude;  
  7.     region.span.latitudeDelta  = 0.2;  
  8.     region.span.longitudeDelta = 0.2;  
  9.     if (mapView)  
  10.     {  
  11.         mapView.region = region;  
  12.         NSLog(@"当前的坐标是: %f,%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);  
  13.     }  
  14. }  

总结

实现定位必须
1.初始化mapview
2.设置mapview的showUserLocation的属性为YES
3.去实现didUpdateUserLocation代理来实现当前位置显示在可视范围内

http://blog.csdn.net/fanjunxi1990/article/details/9131003
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值