百度地图ios环境配置
1 前言
由于工作需要,要开始捣腾百度地图了,今天上午初始牛刀,各种碰壁,无奈之下,中午睡了一觉,养精蓄锐,以备下午大战三百回合,所幸下午中午把百度地图Demo捣腾出来了,在此与大家分享,环境搭建教程,菜鸟专用,大神勿喷!
本文旨在帮助新手快速搭建ios版百度地图,官网有相关教程,可是太旧了,现在的xcode都更新到了4.6,他的教程应该是在4.3之前吧。估计新手在搭建的时候一定会遇到错误,按照我的教程一步一步,保证你花最少的时间,快速进行地图开发。
机器环境:mac os x 10.8.2
开发环境:xcode4.6
真机环境:iPod Touch4G 版本:6.1.2
地图版本:BaiduMapApi_Lib_iOS_1.2.2 下载地址:http://developer.baidu.com/map/sdk-ios.htm
【注】:使用百度地图的SDK需要申请key,应用名称可随意写,前提是有百度账号,详情官网查看。
2 详述
2.1 官网下载最新的SDK开发包_iOS静态库文件 http://developer.baidu.com/map/sdkiosdev-download.htm
解压后如下图所示:
2.2 打开xcode,新建一个demo工程(或是在你现有的工程下),创建好后把下载的的inc,libs,mapapi.bundle三个文件夹导入到工程内,注意需要copy+destination,看我如下截图:
一定要勾选copy和create group 同时要添加到target。
2.3 几乎所有的第三方地图sdk都是依赖于apple自有的几个framework,所以这一步需要我们导入:CoreLocation.framework和QuartzCore.framework。导入方法如下:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
此时如果.h导入BMapKit.h头文件,实例化BMKMapManager或是BMapView,一定会有如下的错误:
貌似提示:libbaidumapapi.a找不到,那么是路径的问题么?这就是大家常遇到的BMKMapManager错误。其实原理是系统无法链接到我们的地图静态库,解决办法如下文:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.4 上边是个小尝试和插曲,我们继续下一步,选中工程,target,切换到Build Setting标签,定位到other link flag,
输入:-all_load
2.5 现在需要设置一下链接库的环境变量,好让项目能顺利找到目录下的.a文件,选中工程,target,切换到build setting标签,定位到Library search Path ,如下图所示:
删除已有的三个,添加一个足矣(模拟器+真机):$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)
简单解释一下:
$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator,这个涉及环境变量的相关知识,我也不太懂,全是自己尝试出来的,大家直接copy我这行就行了。如下:
2.6 这个时候,静态库文件已经设置完毕,剩下的就只有代码工作了,由于需要key的验证,所以我们先需要使用BMKMapManager类,配置申请到的key,以得到授权。选中AppDelegate.h
#import "BMapKit.h" //导入BMapKit.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>{
BMKMapManager* _mapManager; //实例化
}
选中AppDelegate.m,修改成.mm,(注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm))
【注意:如果没有mm,运行会大量报错的】
在AppDelegate.mm中的didFinishLaunchingWithOptions,加入如下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 要使用百度地图,请先启动BaiduMapManager
_mapManager = [[BMKMapManager alloc]init];
// 如果要关注网络及授权验证事件,请设定generalDelegate参数
BOOL ret = [_mapManager start:@"3830003D1DAFE904D7226E48F2F488262D5B23D2" generalDelegate:nil];
if (!ret) {
NSLog(@"manager start failed!");
}
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ZYViewController alloc] initWithNibName:@"ZYViewController" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
2.7 在需要显示地图的viewcontroller.m中加入如下代码:
#import "ViewController.h"
#import "BMKMapView.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad
{
[super viewDidLoad];
BMKMapView* mapView = [[BMKMapView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)];
self.view = mapView;
}
导入BMKMapView.h后,实例化BMKMapView类。
2.8 在AppDelegate中授权过后,可以随意在任意的Viewcontroller中使用Mapview了。
(当然,BMKMapManager授权也可以写到任意的ViewController中,但是这样的话,只能在这个ViewController中使用MapView,换其它类使用地图的话,还需再来授权,否则地图view会是黑屏):
真机截图:
3 结语
以上是所有内容,希望对大家有所帮助。
整个过程,就中间设置环境变量比较麻烦,但以后不管是模拟器还是真机调试,都不用再做任何设置了,不好嘛?
下载地址:
百度地图API打包:http://download.csdn.net/detail/u010013695/5414913
测试程序下载地址:http://download.csdn.net/detail/u010013695/5414923
百度地图ios环境配置的更多相关文章
- 百度地图插件(百度地图AK申请配置指南)
百度地图AK申请配置指南 [LBS云] 百度地图AK申请配置指南 1. 该文档是详细版,图文并茂: 2. 该指南是针对browser-mobile-sever三种终端开发的申请与配置说明: 3 ...
- Apache Cordova for ios环境配置
原文:Apache Cordova for ios环境配置 1.安装针对iOS的工具 https://technet.microsoft.com/ZH-cn/library/dn757054.aspx ...
- 百度地图 IOS版开发经验分享
最近刚完成app中地图的应用,感觉非常的曲折,折腾了很久,刚才开始一直不能成功使用百度地图api,报一大堆的错误,后来换到高德地图,又发现服务端使用的百度的经纬度,又从高德换回百度,泪奔. 这里简单比 ...
- IOS7学习之路十(百度地图API环境搭建)
百度地图官网的API开发教程链接:点击打开链接 我按照他的教程做的总出现"Apple Mach-O linker command failed with exit code 1"的 ...
- 百度地图 iOS SDK - 坐标转换方法
百度地图 Android SDK 要么 iOS SDK 或各种 API 工具产品,我们使用百度自己的加密坐标系. 员在使用过程中,位置点都是通过 GPS 或者其它途径获取的.所以与百度地图所使用的坐标 ...
- AndroidBDMap学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用
(一)注册并获取AK码: step1:找到keytool工具,并转移到.android目录下.(前提是已经安装了java jre/jdk) 为避免有些情况,在控制台无法找到keytool,可以把与k ...
- qq iOS环境配置及调用
1.下载官方iOS sdk:地址:相关文档 2. 将iOS SDK中的TencentOpenAPI.framework和TencentOpenApi_IOS_Bundle.bundle文件拷贝到应用开 ...
- ios 环境配置网址
http://blog.csdn.net/cwb1128/article/details/18019751
- iOS开发---百度地图配置流程,2.6.0 版本 支持64位
1.首先需要在百度地图下载最新SDK:地址: http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download 2. ...
随机推荐
- Insert Data with C# Driver
https://docs.mongodb.com/getting-started/csharp/insert/ OverView You can use the InsertOneAsync meth ...
- hdoj--1556--Color the ball(模拟&&树状数组)
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化
1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了 ...
- POJ 1320 Street Numbers(佩尔方程)
Street Numbers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3078 Accepted: 1725 De ...
- 运营商 WLAN
运营商 WLAN 运营商 WLAN 是 Android 9 中引入的一项功能,该功能可让设备自动连接到运营商实现的 WLAN 网络.在高度拥塞或信号覆盖范围较小的区域(如体育场或地铁站),运营商 WL ...
- decision tree 决策树(一)
一 决策树 原理:分类决策树模型是一种描述对实例进行分类的树形结构.决策树由结点(node)和有向边(directed edge)组成.结点有两种类型:内部结点(internal node)和叶结点( ...
- [ZJOI2012]旅游 对偶图 树的直径
Code: // luogu-judger-enable-o2 #include<cstdio> #include<iostream> #include<algorith ...
- yii2.0中使用jquery
我们都知道 yii 框架是组件式开发的,使用 jquery 也是非常简单的.只需要注册一下就可以使用非常简单的 jquery 代码了! <?php $this->beginBlock('s ...
- 移动端(手机端)页面自适应解决方案—rem布局篇
移动端(手机端)页面自适应解决方案-rem布局 假设设计妹妹给我们的设计稿尺寸为750 * 1340.结合网易.淘宝移动端首页html元素上的动态font-size属性.设计稿尺寸.前端与设计之间协作 ...
- POJ 1152 An Easy Problem! (取模运算性质)
题目链接:POJ 1152 An Easy Problem! 题意:求一个N进制的数R.保证R能被(N-1)整除时最小的N. 第一反应是暴力.N的大小0到62.发现当中将N进制话成10进制时,数据会溢 ...