iOS百度地图 定位的实现
2013-06-19 17:55
330 查看
iOS百度地图 定位的实现
今天发现自己好笨啊。。。一直在搞定位,想为什么会是空的,原来定位也是需要代理去实现的在初始化地图的时候,也就是在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就好了呢,这样做是不会立马就定位到的,它内部的实现是在子线程去定位,
然后通过代理方法去更新当前的用户位置的,好晕啊,仔细一找 ,就找到了这个更新用户当前位置的代理方法
/** *用户位置更新后,会调用此函数 *@param mapView 地图View *@param userLocation 新的用户位置 */ - (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation;
那么就去实现它好了,这个时候应该是定位到了用户的位置了,也就是这个userLocation了
#pragma mark mapViewDelegate 代理方法 - (void)mapView:(BMKMapView *)mapView1 didUpdateUserLocation:(BMKUserLocation *)userLocation { BMKCoordinateRegion region; region.center.latitude = userLocation.location.coordinate.latitude; region.center.longitude = userLocation.location.coordinate.longitude; region.span.latitudeDelta = 0.2; region.span.longitudeDelta = 0.2; if (mapView) { mapView.region = region; NSLog(@"当前的坐标是: %f,%f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude); } }
总结
实现定位必须1.初始化mapview
2.设置mapview的showUserLocation的属性为YES
3.去实现didUpdateUserLocation代理来实现当前位置显示在可视范围内
小知识的积累,定是大财富的源泉。虚心学习,每天进步一点点。
相关文章推荐
- iOS与phonegap整合 实现百度地图定位和二维码扫描
- ios百度地图定位实现
- iOS百度地图 定位的实现
- iOS百度地图 定位的实现
- iOS 百度定位实现
- iOS中城市定位功能的实现
- iOS后台定位实现
- 最简洁的方式,实现web端百度地图一键定位导航
- iOS开发(第三方使用)——百度地图的简单使用(定位与当前位置的显示)
- iOS Core Location 实现定位
- 使用百度地图实现拖动定位、搜索定位
- 【第三方SDK】百度地图实现最简单的定位功能(无地图界面)
- Android调用百度地图Web端接口,实现百度定位、导航
- Android集成百度地图接口,实现定位+路径规划。新手教程
- 利用HTML5定位功能,实现在百度地图上定位
- iOS后台定位实现
- iOS 百度地图改变popview 及改变定位图标
- 实现 iOS 后台定位的两种方式
- iOS后台定位实现
- 简单实现安卓里百度地图持续定位