如何开发一个简单的百度地图--定位(二)

今天继续跟大家介绍百度地图的用法,首先我们从基本的功能开始,定位是不可缺少的功能,我们就先从定位开始。

1.首先需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述 NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述


2.然后导入头文件 BaiduMapAPI/BMKLocationService.h,并写上代理 BMKLocationServiceDelegate,然后我们初始化一个定位的BMKLocationService
如图



3.然后我们添加一个定位的按钮


定位按钮

它的点击事件

定位点击事件

4.然后我们把定位的代理写上
//在地图View将要启动定位时,会调用此函数 (void)willStartLocatingUser { NSLog(@"开始定位"); } //在地图View停止定位后,会调用此函数 (void)didStopLocatingUser { NSLog(@"停止定为"); } //定位失败后,会调用此函数 (void)didFailToLocateUserWithError:(NSError *)error { NSLog(@"定位失败"); } //用户方向更新后,会调用此函数 (void)didUpdateUserHeading:(BMKUserLocation *)userLocation { [mapView updateLocationData:userLocation]; // NSLog(@"位置在 %@",userLocation.heading); } //用户位置更新后,会调用此函数 (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation { // NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude); [mapView updateLocationData:userLocation]; }
这些事定位的代理,一定要都写上,不然无法显示。
还有下面的也一定要加上


最后我们来看一下运行起来的效果

手动定位.gif

下面我说一下注意事项:

  • 代理记得一定要写上写全,有一个漏掉的就可能会导致无法显示定位
  • 模拟器有时候会无法定位,需要你设置一下才行
    打开模拟器在上面找到Debug->Location->Custom Location 在里面设置位置坐标,如果设置了还不管用的话可以切换别的在切换回来试试,也可以用真机来运行
  • 点击定位后的触发事件里一定要记得加上
    mapView.userTrackingMode = BMKUserTrackingModeNone; mapView.showsUserLocation = YES;
  • 还有info.plist里面别忘了加上上面提到的NSLocationWhenInUseUsageDescription,否则也是无法定位的。

好了这就是百度地图的手动定位,定位比较简单,希望能帮助到大家,后期我还会继续更新百度地图的其他功能,如果有写的不好的地方希望大家能提出宝贵的意见!谢谢!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容