02 使用百度地图获得当前位置的经纬度
2012-11-20 23:51
513 查看
O 需求
通过百度地图,获取用户当前位置的经纬度
一 准备
确保你已按照上篇《01 如何将百度地图加入IOS应用程序?》完成了相关功能。本篇将在上一篇的基础上进行修改。
二 编码
(New标示本次新添加的代码;Delete表示本次需要删除的代码;Modify表示本次被修改的代码)
1、在ViewController.h中添加引入BMKMapViewDelegate的声明,如下
在ViewController.mm中修改代码如下
执行后,将控制台打印出你当前的地理坐标:
此时,手机端的地图上还没有任何反应,别急,我们将在下一篇中让地图定位到当前的地理位置。
三 下载 ...... 去下载源代码咯......
四 疑问
1、在百度给的Demo中,百度在实现 BMKMapViewDelegate中的方法中实现了如下- (void)mapViewWillStartLocatingUser:(BMKMapView
*)mapView方法,但是在实际测试中,貌似此方法并没有被执行?这是为什么呢?
2、当前的地理位置没有改变的情况下,为什么- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation
*)userLocation 方法会被循环触发?
通过百度地图,获取用户当前位置的经纬度
一 准备
确保你已按照上篇《01 如何将百度地图加入IOS应用程序?》完成了相关功能。本篇将在上一篇的基础上进行修改。
二 编码
(New标示本次新添加的代码;Delete表示本次需要删除的代码;Modify表示本次被修改的代码)
1、在ViewController.h中添加引入BMKMapViewDelegate的声明,如下
@interface ViewController : UIViewController<……,BMKMapViewDelegate> //New {…… }
在ViewController.mm中修改代码如下
- (void)viewDidLoad { …… //创建一张百度地图 BMKMapView* mapView = [[BMKMapViewalloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; [mapView setShowsUserLocation:YES]; // New 开启定位功能 mapView.delegate = self; // New 将委托变量指向Controller [self.viewaddSubview:mapView]; } /** 在地图View将要启动定位时,会调用此函数 @param mapView 地图View 下面的这个方法,貌似并没有被启动啊?是否是可有可无的? */ - (void)mapViewWillStartLocatingUser:(BMKMapView *)mapView { NSLog(@"start locate"); } #pragma mark - 实现 BMKMapViewDelegate 中的方法 /** 用户位置更新后,会调用此函数 @param mapView 地图View @param userLocation 新的用户位置 在实际使用中,只需要 [mapView setShowsUserLocation:YES]; mapView.delegate = self; 两句代码就可以启动下面的方法。疑问,为什么我的位置没有移动的情况下,这个方法循环被调用呢? */ - (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation *)userLocation { if (userLocation != nil) { NSLog(@"%f %f", userLocation.location.coordinate.latitude, userLocation.location.coordinate.longitude); } } /** 定位失败后,会调用此函数 @param mapView 地图View @param error 错误号,参考CLError.h中定义的错误号 */ - (void)mapView:(BMKMapView *)mapView didFailToLocateUserWithError:(NSError *)error { if (error != nil) NSLog(@"locate failed: %@", [error localizedDescription]); else { NSLog(@"locate failed"); } }
执行后,将控制台打印出你当前的地理坐标:
此时,手机端的地图上还没有任何反应,别急,我们将在下一篇中让地图定位到当前的地理位置。
三 下载 ...... 去下载源代码咯......
四 疑问
1、在百度给的Demo中,百度在实现 BMKMapViewDelegate中的方法中实现了如下- (void)mapViewWillStartLocatingUser:(BMKMapView
*)mapView方法,但是在实际测试中,貌似此方法并没有被执行?这是为什么呢?
2、当前的地理位置没有改变的情况下,为什么- (void)mapView:(BMKMapView *)mapView didUpdateUserLocation:(BMKUserLocation
*)userLocation 方法会被循环触发?
相关文章推荐
- 02 使用百度地图获得当前位置的经纬度
- Android使用百度地图SDK获得当前设备位置所在的省、市(系列1)
- Android使用百度地图SDK获得当前设备位置所在的省、市
- Android使用百度地图SDK获得当前设备位置所在的省、市
- Android使用百度地图SDK获得当前设备位置所在的省、市
- 学习日记--使用百度地图获得当前设备位置信息
- 获得当前IP的位置及经纬度的web服务
- android使用百度地图获取当前经纬度
- 使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置
- Geolocation获取当前位置的经纬度在百度地图中就是比google地图中精确的原因
- 百度地图获取经纬度和当前精确位置名称
- Android使用百度地图定位(获取当前经纬度和地址信息)
- iOS开发(第三方使用)——百度地图的简单使用(定位与当前位置的显示)
- 谷歌地图应用之如何从谷歌地图获得当前位置的经纬度信息
- 百度地图 sdk 简单封装使用 获取当前位置
- 百度地图最新版本sdk使用系列(八)-获取当前地图中心点的经纬度并计算与当前位置的距离
- android使用百度地图定位(获取当前经纬度和地址信息)
- android使用百度地图定位(获取当前经纬度和地址信息)
- AndroidStudio 中使用 百度地图 <四> 百度地图实现打开就显示当前位置,个人摘要
- Geolocation获取当前位置的经纬度在百度地图中就是比google地图中精确的原因 .