iOS百度地图 定位的实现

发布时间:2023-05-04 10:39:17

  今天发现自己好笨。。。我一直在搞定位,想为什么是空的。原来的定位也需要代理来实现。 在初始化地图中,也就是在viewdidload中。 mapView.showsUserLocation = YES;if (mapView.userLocation.location != nil) { NSLog(@“成功定位”); coor = [[mapView.userLocation location] coordinate]; NSLog(@"%f",coor.latitude); NSLog(@"%f",coor.longitude); } BMKCoordinateRegion viewRegion = BMKCoordinateRegionMake(coor, BMKCoordinateSpanMake(0.02f,0.02f)); BMKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion]; [mapView setRegion:adjustedRegion animated:YES];

  一直以为是这样的,因为showuserlocation设置了 拿到现在的userlocation就好了,这样做不会马上定位,它的内部实现是在子线程中定位的,

  然后通过代理方法更新当前用户位置,好晕啊,仔细寻找 ,找到更新用户当前位置的代理方法 1. - (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation;

  那就去实现吧,这个时候应该是定位到用户的位置,也就是这个userlocation 1. 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.初始化mapviewwie

  2.设置mapview的showuserlocation属性为YESS

  3.实现didupdaterlocation代理,实现当前位置显示

  小知识的积累,一定是大财富的源泉。虚心学习,每天进步一点。

上一篇 基于SSM开发宿舍管理系统
下一篇 offer Java基础精选从编译到集合

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题