关于使用百度地图API 需要注意的问题
http://darrendev.diandian.com/post/2012-09-26/40039555068
上面的文章,非常详细的总结了百度地图需要注意的问题,结合baidu自己的demo来研究,很快就可以将百度地图加入自己的过程。
教程在上面,按照教程来使用即可。
重点点:在 other link flag 里面 设置 -all_load
------------------------------------------------------
可以借助调用google API 计算两点的行车时间。
关于调用google API 计算两点行车距离
Http 请求:
////API 接口 json 数据 返回两点之间的行车距离和时间
http://maps.googleapis.com/maps/api/distancematrix/json?
///参数
origins=39.915101,116.403981 //起点
destinations=40.056957,116.307827 //终点
sensor=false ///表示是否启用GPS定位
mode,用于指定计算路线时所采用的出行方式。有效值包括:
- driving(默认),用于表示使用道路网络的标准行车路线。
- walking,用于请求经过步行街和人行道(如果有的话)的步行路线。
- bicycling,用于请求途经自行车道和优先街道的骑行路线(目前仅在美国和加拿大的某些城市提供)。
language=zh-Hans ///简体中文地区
///示例请求
///示例数据 json 数据
{
"destination_addresses" : [ "中国北京 海淀区西二旗西路29号" ],
"origin_addresses" : [ "中国北京 东城区东华门大街56号 邮政编码: 100006" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "24.0 公里",
"value" : 24002
},
"duration" : {
"text" : "35 分钟",
"value" : 2118
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
--------------------------------------------------------------------
下载:
http://developer.baidu.com/map/sdk-ios.htm
注册Key:
http://dev.baidu.com/wiki/static/imap/key/
导入:
将libbaidumapapi.a (分为模拟器/真机版, 名字相同, 只能存在一个) 拖进工程
将inc文件夹拖进工程
将mapapi.bundle拖进工程 (包含一些默认图片)
保证至少有一个文件为.mm
导入CoreLocation.framework
导入QuartzCore.framework
Project->BuildSetting->Linking->Other Linker Flags 添加 -all_load (用来保证xib中可用)
AppDelegate.h中:
1
2
3
4
5
6
|
#import "BMapKit.h" @interface AppDelegate : UIResponder <UIApplicationDelegate> { BMKMapManager* _mapManager; } |
AppDelegate.m中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions { // 要使用百度地图,请先启动BaiduMapManager _mapManager = [[BMKMapManager alloc]init]; // 如果要关注网络及授权验证事件,请设定generalDelegate参数 BOOL ret = [_mapManager start:@ "你的KEY" generalDelegate: nil ]; if (!ret) { NSLog (@ "manager start failed!" ); } //.... return YES ; } |
到这就可以通过编译了.
实战可参考官方的指南和Demo.
FIY:
如果bundle name是中文会产生崩溃