iOS开发

ios百度地图开发教程,ios开发教程 百度网盘下载

Linux基金会Kubernetes安全专家认证上线,预约享早鸟折扣,最后三天!>>>本文作者:用户_123456789

百度地图iOS SDK是一套应用于iOS 7.0及以上版本的地图能力应用程序接口,开发者可以轻松,快捷的在自己的iOS应用中集成。

功能包括: 地图展示(普通地图、卫星图、路况图、热力图、室内图、个性化地图),与地图交互(手势交互、控件交互、方法交互),在地图上绘制(标记点、绘制线、绘制面、绘制Overlay等),检索地图数据(检索POI、公交信息检索、地理编码检索、行政区域检索等),路线规划(步行路线规划、骑行路线规划、驾车路线规划、跨城路线规划、公交路线规划)和即将在v4.1.1上线的步骑行导航等功能。

目前已经应用于众多行业中如:网约车,共享出行,外卖,快递物流等行业。

开发者在集成百度地图后进行地图初始化时,需要调用启动引擎接口-(BOOL)start:(NSString*)key generalDelegate:(id)delegate;其中参数key即为服务秘钥AK。

申请AK需要您提供引入SDK的程序的Bundle Identifier,AK与您提供的Bundle Identifier一一对应,申请后请妥善保存。

填写应用名称、应用类型注意选择“iOS SDK”、正确填写安全码(Bundle Identifier),点击提交,系统将会自动帮您生成相应的开发密钥。

百度地图iOS SDK自v2.7.0版本起,向广大开发者提供了 .framework形式的SDK开发包,这种形式的开发包配置简单,使用方便,推荐大家使用。您可以访问 百度地图iOS SDK产品下载页 进行相关下载,您可以在【阅读原文】中选择 “产品下载”,进入该页面。

产品下载页提供开发包、示例代码、类参考的下载项目,开发包即为百度地图framwork压缩包,示例代码为使用百度地图的Demo,类参考提供了地图SDK中相关类的说明。

您可以选择页面中的【全部下载】下载所有的内容,同时百度地图提供了Bitcode版本的开发包,您可以按照您的应用需求进行对应的下载。您也可以选择只下载【示例代码】和【类参考】。

下面我们正式开始百度地图SDK集成工作,首先您需要创建一个项目,然后按照下面步骤手动部署配置您的项目。

百度地图 iOS SDK 采用分包的形式提供 .framework包,其中 BaiduMapAPI_Base.framework 为基础包,使用SDK的任何功能都需要导入此包,其他分包按照需求您可以自行选择。这里需要您注意:使用时请确保各个分包的版本保持一致。

各个分包包含的功能如下:(其中*号标记为必选包)

添加百度地图库(.framework)

选择好您需要的分包后,将所需的BaiduMapAPI_**.framework拷贝或者拖拽到工程所在文件夹下。

导入百度地图开发包方法如下: 左侧目录选中工程名,在 TARGETS -> Build Phases -> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择 BaiduMapAPI_**.framework 添加到工程中,如下图所示:

百度地图SDK中提供了定位功能和动画效果,v2.0.0版本开始使用OpenGL渲染,即将上线的v4.1.1提供了步骑行导航功能,因此您需要在您的Xcode工程需引入的11个系统库如下:

CoreLocation.framework,QuartzCore.framework,OpenGLES.framework,SystemConfiguration.framework,CoreGraphics.framework,Security.framework。

下面三个库是v2.9.0新增的系统库,使用v2.9.0及以上版本的地图SDK,务必增加:

CoreTelephony.framework,libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib),libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib。

下面两个库分别是即将上线的v4.1.0升级检索组件和v4.1.1步骑行导航需要添加的库:

MobileCoreServices.framework,CoreMotion.framwork。

SystemConfiguration.framework、CoreTelephonySecurity.framework、Security.framework 是为了统计app信息使用。

引入系统库的操作如下:左侧目录中选中工程名,在TARGETS -> Build Phases -> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中查找并选择所需的库,单击“Add”按钮,将库文件添加到工程中,如下图所示:

引入所需的第三方openssl库

添加支持HTTPS所需的openssl静态库:libssl.a和libcrypto.a(SDK打好的包存放于thirdlib目录下)。

添加openssl库方法如下: 在 TARGETS -> Build Phases -> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择libssl.a和libcrypto.a添加到工程中。

▲引入mapapi.bundle资源文件

地图基础功能的使用需要添加mapapi.bundle资源文件,其中存储了定位、默认大头针标注View及路线关键点的资源图片,还存储了矢量地图绘制必需的资源文件,资源文件存放在BaiduMapAPI_Map.framework/Resources中。

如果您不需要使用内置的图片显示功能,则可以删除bundle文件中的image文件夹,您也可以根据具体需求任意替换或删除该bundle中image文件夹的图片文件。

导入资源文件添加方法: 在左侧目前选中工程名,在右键菜单中选择 Add Files to “工程名”…,从 BaiduMapAPI_Map.framework/Resources 文件中选择 mapapi.bundle 文件,并勾选 “Copy items if needed” 复选框,单击“Add”按钮,将资源文件添加到工程中。

1. 静态库中采用Objective-C++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为”Objective-C++”。

2. 如果Xcode控制台打印manager start failed : info.plist 中必须添加 Bundle display name错误日志,这里是提示您需要在你App的.plist文件中填写您的App名称。

3. 在您集成百度地图SDK,编译过程中如出现类似的红色警告:”std::1::basic_streambuf::uflow()”, referenced from: , 或者如下图报红,您可以尝试下面方法解决问题。

(1).Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为”Objective-C++”是否设置正确。

(2).Xcode的Project -> Edit Active Target -> General -> Deployment Info 中找到 Deployment Target,并将其版本设置为大于7.0版本。

4. 如果在iOS9中使用了调起百度地图客户端功能,必须在”Info.plist”中进行如下配置,否则不能调起百度地图客户端。

LSApplicationQueriesSchemes

baidumap

在您的AppDelegate.h文件中添加BMKMapManager的定义

@interface AppDelegate : UIResponder {

UINavigationController *navigationController;

BMKMapManager* _mapManager;

▲在您的AppDelegate.m文件中添加对BMKMapManager的初始化,并填入您申请的授权Key,示例如下:

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注