百度地图流程

我使用百度地图感觉就像是坑了爹一样,总会出现各种问题,今天我在这个博客里面写写百度地图有可能出的坑。

------------------

首先百度上打百度地图API然后点击进去,点击开发,点击IOS地图SDK。




------------------

进到这个界面先点相关下载




------------------

进到这个里面,直接点全部下载(蓝色按钮),下载完成后解压缩




------------------

解压缩完成后是这个样子的,然后打开




-------------------

最后那个.DS_store没有用,你们别被误导,那个是我的隐藏文件,

我不会隐藏。。。
我不会隐藏。。。
我不会隐藏。。。

把zip文件解压缩,就是下面的两个蓝色文件夹








---------- ---------
之后,回到概述,概述下面有个获取密钥,点一下会跳转,点击创建应用



-------------------
之后,应用名称输个你认识的名字,最好是工程的中文名,应用类型写,IOS,SDK,安全码,是你工程Bundle Identifier






-------------------
第三个那一长串英文字母,就是你的百度key这个你找个地方保存一下



-------------------
回到百度地图概述那里,然后你点击开发指南,直接点第三个注意事项,然后第四条和第五条,你需要注意一下,直接按照我图片上
NSAppTransportSecurity
LSApplicationQueriesSchemes
一填加就可以了,剩下的内容不用看,直接点到配置开发环境









-------------------
之后到了配置开发环境之后,有一个自动配置,还有一个手动配置,我个人一直弄的是手动配置,我接下来写的肯定也是手动配置,接下来,点你的文件夹,点右键,点show in finder,在finder中,点到文件夹里面,你最好新建一个文件夹叫Frameworks,用来放.framework包


-------------------
点开Frameworks这个文件夹,把这7个文件拖进去,然后回到你的工程。
如果没法用的话,就删掉,用add file to "文件名"的方法添加进去



-------------------
把这个文件夹拖进去,里面就有了这7个BaiduMap.framework了,然后添加系统库,

CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework、libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework 、libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)

添加方式:在Xcode的Project -> Active Target ->Build Phases ->Link Binary With Libraries,添加



---------- - --------
然后 在TARGETS->Build Settings->Other Linker Flags 中添加       -ObjC

再下一步,你点着Frameworks这个文件夹,点右键,有一个Add File to "项目名",你点击一下,找到你之前放7个BaiduMap库的文件夹,点这几个库,找到一个有Resources文件的库,点文件夹,点击add,你工程里面就有了mapapi.bundle








-------------------
然后添加头文件,如果头文件报错的话,就手打一遍,Xcode里面有的时候会出现,不手打就找不到的情况。

#import <BaiduMapAPI_Base/BMKBaseComponent.h>//引入base相关所有的头文件
 
#import <BaiduMapAPI_Map/BMKMapComponent.h>//引入地图功能所有的头文件
 
#import <BaiduMapAPI_Search/BMKSearchComponent.h>//引入检索功能所有的头文件
 
#import <BaiduMapAPI_Cloud/BMKCloudSearchComponent.h>//引入云检索功能所有的头文件
 
#import <BaiduMapAPI_Location/BMKLocationComponent.h>//引入定位功能所有的头文件
 
#import <BaiduMapAPI_Utils/BMKUtilsComponent.h>//引入计算工具所有的头文件
 
#import <BaiduMapAPI_Radar/BMKRadarComponent.h>//引入周边雷达功能所有的头文件
 
#import <BaiduMapAPI_Map/BMKMapView.h>//只引入所需的单个头文件
 
 
 
-------------------
然后在你的 AppDelegate.h 里面添加代理和属性



-------------------
AppDelegate.m上,改名,改成 AppDelegate.mm 百度地图文档上要求做的,“为什么”我没看~
接下来,请把下面的内容复制

- (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!");  
    }  
// Add the navigation controller's view to the window and display.  
    [self.window addSubview:navigationController.view];  
    [self.window makeKeyAndVisible];  
   return YES;  
}

如果你要添加地图功能的话,就在你要用的那个视图上,打

- (void)viewDidLoad {  
    [super viewDidLoad];  
    BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    self.view = mapView;      
}
(void)viewWillAppear:(BOOL)animated    
{    
    [_mapView viewWillAppear];    
    _mapView.delegate = self; // 此处记得不用的时候需要置nil,否则影响内存的释放    
}    
-(void)viewWillDisappear:(BOOL)animated    
{    
    [_mapView viewWillDisappear];    
      _mapView.delegate = nil; // 不用时,置nil    
}

地图完成了,如果需要其他功能去这个网址上找       http://lbsyun.baidu.com/index.php?title=iossdk/guide/hellobaidumap

----------------------
接下来,我要说下更加坑爹的定位,这个也是我用到百度地图一直用到的功能,如果你想在一开始就得到定位请求的话,你需要在AppDelegate里面写这个内容
 //初始化BMKLocationService  
    _locService = [[BMKLocationService alloc]init];  
    _locService.delegate = self;  
    //启动LocationService  
    [_locService startUserLocationService];  
然后写
//实现相关delegate 处理位置信息更新  
//处理方向变更信息  
- (void)didUpdateUserHeading:(BMKUserLocation *)userLocation  
{  
    //NSLog(@"heading is %@",userLocation.heading);  
}  
//处理位置坐标更新  
- (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation  
{  
    //NSLog(@"didUpdateUserLocation lat %f,long %f",userLocation.location.coordinate.latitude,userLocation.location.coordinate.longitude);  
}

如果不调用的话,请在info.plist里面添加
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription




你的定位系统就调用啦,本次就先写到这里吧,等有新的问题,接着更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值