前言
集成百度地图还是很简单的只要注意些细节,绝对OK的了!! 只要按照我的流程来就可以。
-
一 申请秘钥
官方已经写得很清楚了 点这里
这里注意点一点是:启用服务是指你在项目中需要用到的服务,打勾就是指启用
-
二 导入所需库及.a文件和mapapi.bundle文件
导入库文件这些有两种方式手动导入和CocoaPods这里重点说的是手动导入需要注意的这些坑
手动导入
1.不要按官方的方式导入(切记) 直接脱,对的是直接脱
2.mapapi.bundle文件找不到? 其实他在BaiduMapAPI_Map.framework的Resources里
3.官方说静态库采用了Objective-C++实现所以要在工程里至少保证有一个.mm后缀的源文件,直接在AppDelegate.m后加个m或者在工程属性中指定编译方式,个人不建议后者,你试了就会知道什么是 崩溃崩溃崩溃
CocoaPods导入
-
三 注意事项
在以上都完成时需要注意一些细节
1.在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC
2.如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行如下配置,否则不能调起百度地图客户端。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>baidumap</string>
</array>
3.管理地图的生命周期,BMKMapView在一个时刻只能有一次接受回调消息,因此在viewController中调用以下BMKMapView的对应的方法,并且不要忘记添加代理
4.官方自iOS SDK v2.5.0起,对iOS8的定位能力做兼容,,以下二选一
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
5.在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)
6.Bundle Identifier要和申请秘钥安全码以及info.plist的Bundle Identifier要一致
以上几点一定要满足,其中的最后一个把我摧残的不要不要的
-
四 初始化地图
具体的一些导航啦定位的一些方法代理 点这里
结论:
以上一个小小的百度地图就出来了
具体流程就这些如有疏漏还望海涵