1
百度地图移动版 API for ios
开发指南
2012.6.29
CopyRight @ Baidu.com
2
目录
1 简介 .......................................................................................................................................... 3
1.1 什么是百度地图 API .................................................................................................. 3
1.2 获取 API Key ............................................................................................................... 3
1.3 兼容性 ....................................................................................................................... 3
2 在您的程序中显示地图 ........................................................................................................... 3
2.1 引入百度 MapApi 的头文件 ...................................................................................... 3
2.2 引入静态库文件 ........................................................................................................ 4
2.3 引入 CoreLocation.framework 和 QuartzCore.framework........................................... 4
2.4 引入 mapapi.bundle 资源文件 .................................................................................. 4
2.5 初始化 BMKMapManager .......................................................................................... 5
2.6 创建 BMKMapView .................................................................................................... 5
3 注意事项................................................................................................................................... 6
4 卫星图图层............................................................................................................................... 7
5 实时路况图层........................................................................................................................... 7
6 地图覆盖物............................................................................................................................... 7
6.1 添加标注 .................................................................................................................... 8
6.2 删除标注 .................................................................................................................. 10
6.3 添加折线 .................................................................................................................. 10
6.4 添加多边形 .............................................................................................................. 12
6.5 添加圆 ...................................................................................................................... 13
6.6 删除 Overlay ............................................................................................................. 14
7 服务类..................................................................................................................................... 14
7.1 POI 检索 ................................................................................................................... 16
7.2 公交方案检索 .......................................................................................................... 18
7.3 驾车路线检索 .......................................................................................................... 20
7.4 步行路线检索 .......................................................................................................... 21
7.5 地理编码 .................................................................................................................. 23
7.6 反地理编码 .............................................................................................................. 23
7.7 公交详情检索 .......................................................................................................... 24
3
8 定位 ........................................................................................................................................ 26
1 简介
1.1 什么是百度地图 API
百度地图移动版 API(IOS)是一套基于 iOS3.0 及以上设备的应用程序接口,通过该接口,您可以轻
松访问百度服务和数据,构建功能丰富、交互性强的地图应用程序。百度地图移动版 API 不仅包含构
建地图的基本接口,还提供了诸如地图定位、本地搜索、路线规划等数据服务,你可以根据自己的需
要进行选择,目前支持 Iphone3.0 以上的版本,对 iPad 暂不支持。
面向的读者
API 是提供给那些具有一定 iOS 编程经验和了解面向对象概念的读者使用。此外,读者还应该对地图
产品有一定的了解。您在使用中遇到任何问题,都可以通过 API 贴吧或交流群反馈给我们。
1.2 获取 API Key
用户在使用 API 之前需要获取百度地图移动版 API Key,APIKey 可跨平台使用,如果您已经有 Android
平台的授权 Key,可直接在 iOS 平台使用。该 Key 与你的百度账户相关联,您必须先有百度帐户,
才能获得 API KEY。并且,该 KEY 与您引用 API 的程序名称有关,具体流程请参照获取密钥。
1.3 兼容性
支持 iOS3.0 及以上系统,百度地图 API 接口与 iOS 内置的 MapKit 包兼容,开发者只需很小的改动
即可完成从 MapKit 到百度地图 API 的迁移。并且迁移到百度地图 API 之后很多 MapKit 中只有 iOS4.0
以上版本才能使用的特性接口也可以正常使用了。
2 在您的程序中显示地图
完整的 Demo 例程可参考相关下载。
2.1 引入百度 MapApi 的头文件
首先将百度 MapAPI 提供的头文件和静态库(.a)文件拷贝到您的工程目录下,在 XCode 中添加新的文
件 Group,引入百度 MapAPI 提供的头文件。
在您需要使用百度 MapAPId 的文件中添加以下代码
4
#import "BMapKit.h"
2.2 引入静态库文件
百度 MapAPI 提供了模拟器和真机两中环境所使用的静态库文件,分别存放在
libs/Release-iphonesimulator 和 libs/Release-iphoneos 文件夹下。有两种方式可以引入静态库文件:
第一种方式:直接将对应平台的.a 文件托拽至 XCode 工程左侧的 Groups&Files 中,缺点是每次在真
机和模拟器编译时都需要重新添加.a 文件;
第二种方式:
1.将 API 的 libs 文件夹拷贝到您的 Application 工程跟目录下
2.在 XCode 的 Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags 中添加
-lbaidumapapi
3.设置静态库的链接路径,在 XCode 的 Project -> Edit Active Target -> Build -> Search Path ->
Library Search Paths 中添加您的静态库目录,比如
"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工
程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是 OS 还是 simulator
注:静态库中采用 ObjectC++实现,因此需要您保证您工程中至少有一个.mm 后缀的源文件(您可以
将任意一个.m 后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将 XCode 的 Project ->
Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As 设置为
"Objective-C++"
2.3 引入 CoreLocation.framework 和 QuartzCore.framework
百度 MapAPI 中 提 供 了 定 位 功 能 和 动 画 效 果 , 因 此 您 需 要 在 您 的 XCode 工 程 中 引 入
CoreLocation.framework 和 QuartzCore.framework。 添加方式:右键点击 Xcode 工程左侧的
Frameworks 文件夹,add->Existing Frameworks,在弹出窗口中选中这两个 framework,点击 add 即
可。
2.4 引入 mapapi.bundle 资源文件
该步骤为可选,mapapi.bundle 中存储了定位、默认大头针标注 View 及路线关键点的资源图片。如
果您不需要使用内置的图片显示功能,则可以不添加此 bundle 文件。您也可以根据具体需求任意替
5
换 或 删 除 该 bundle 中 的 图 片 文 件 。
添加方式:将 mapapi.bundle 拷贝到您的工程目录,直接将该 bundle 文件托拽至 XCode 工程左侧的
Groups&Files 中即可。
2.5 初始化 BMKMapManager
在您的 AppDelegate.h 文件中添加 BMKMapManager 的定义
0.
@
interface
BaiduMapApiDemoAppDelegate : NSObject
1.
<UIApplicationDelegate>
{
2.
UIWindow *window;
3.
UINavigationController *navigationController;
4.
BMKMapManager* _mapManager;
5.
}
在您的 AppDelegate.m 文件中添加对 BMKMapManager 的初始化,并填入您申请的授权 Key,示例如
下
0.
- (BOOL)application:(UIApplication *)application
1.
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/
/
要使用百度地图,请先启动
BaiduMapManager
2.
_mapManager = [[BMKMapManager alloc]init];
3.
//
如果要关注网络及授权验证事件,请设定
generalDelegate
参数
4.
BOOL ret = [_mapManager start:@"
在此处输入您的授权
Key"
generalDelegate:nil];
5.
if
(!ret) {
6.
NSLog(@"manager start failed!");
7.
}
8.
// Add the navigation controller's view to the window
and display.
9.
[self.window addSubview:navigationController.view];
10.
[self.window makeKeyAndVisible];
11.
return
YES;
12.
}
2.6 创建 BMKMapView