关于使用百度地图IOS-SDK的总结

关于使用百度地图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 ///简体中文地区

///示例请求 

http://maps.googleapis.com/maps/api/distancematrix/json?origins=39.915101,116.403981&destinations=40.056957,116.307827&sensor=false&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是中文会产生崩溃

posted on 2013-05-16 14:23  kevingod  阅读(545)  评论(0编辑  收藏  举报

导航