ios地图sdk | 百度地图api sdk-凯发k8官方旗舰厅

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
ios 地图sdk
百度地图 ios sdk是一套基于ios 7.0及以上版本设备的应用程序接口。 您可以使用该套 sdk开发适用于ios系统移动设备的地图应用,通过调用地图sdk接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。

重要:为进一步采取加强对最终用户个人信息的安全保护措施,从地图sdk v6.5.1版本起,请开发者务必确保调用sdk任何接口前先调用隐私合规接口setagreeprivacy,否则可能会无法正常使用相关功能。具体可参考开发指南-开发注意事项-隐私政策接口说明。

产品简介

ios地图sdk可用于ios原生开发,支持地图展示(室内图、室外图)、地图交互、在地图上绘制、检索地图数据等功能。地图sdk提供丰富的点线面和模型绘制能力,满足各类业务场景的个性化需求。

重点功能简介
地图展示与交互
简介
地图展示:普通地图(2d,3d)、卫星图和实时交通图。开放高清4k地图显示。
地图交互:可通过接口或手势控制来实现地图的单击、双击、长按、缩放、旋转、改变视角等操作。
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_map/bmkmapcomponent.h>
//当前界面的mapview
@property(nonatomic, strong)bmkmapview*mapview;
-(void)viewdidload {
[super viewdidload];
_mapview =[[bmkmapview alloc] initwithframe:self.view.bounds];
//设置mapview的代理
_mapview.delegate= self;
//将mapview添加到当前视图中
[self.view addsubview:_mapview];
}
-(void)viewwillappear:(bool)animated {
[superviewwillappear: animated];
//当mapview即将被显示的时候调用,恢复之前存储的mapview状态
[_mapview viewwillappear];
}
-(void)viewwilldisappear:(bool)animated {
[superviewwilldisappear: animated];
//当mapview即将被隐藏的时候调用,存储当前mapview的状态
[_mapview viewwilldisappear];
}
室内图
简介
自百度地图sdk v3.0版本起,室内图功能正式上线,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图app同步更新;
支持的公众建筑包含购物商场、机场和火车站等交通枢纽、医院等,覆盖全国4000 个大型购物中心。
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_map/bmkmapcomponent.h>
bmkmapview*mapview =[[bmkmapview alloc] initwithframe:self.view.bounds];
//设置mapview的代理
mapview.delegate= self;
//将mapview添加到当前视图中
[self.view addsubview:mapview];
//设置当前地图的中心点,改变该值时,地图的比例尺级别不会发生变化
mapview.centercoordinate=cllocationcoordinate2dmake(39.917,116.379);
//设置地图比例尺级别
mapview.zoomlevel=18;
mapview.baseindoormapenabled=yes;
mapview.showindoormappoi=yes;
#pragma mark -bmkmapviewdelegate
/**
*地图进入/移出室内图会调用此接口
*@param mapview 地图view
*@param flag yes:进入室内图; no:移出室内图
*@param info 室内图信息
*/
-(void)mapview:(bmkmapview*)mapview baseindoormapwithin:(bool)flag baseindoormapinfo:(bmkbaseindoormapinfo*)info
{
if(flag){
//进入室内图
}else{
//移出室内图
}
}
境外地图
简介
百度地图sdk支持境外地图的展示能力,包含全球200多个国家和地区的详细道路、poi等数据展示。
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_map/bmkmapcomponent.h>
bmkmapview*mapview =[[bmkmapview alloc] initwithframe:self.view.bounds];
//设置mapview的代理
mapview.delegate= self;
//将mapview添加到当前视图中
[self.view addsubview:mapview];
bmkmapstatus*status =[[bmkmapstatus alloc]init];
status.flevel=10;
status.targetgeopt=cllocationcoordinate2dmake(51.50556,-0.07556);
[mapview setmapstatus:status withanimation:yeswithanimationtime:1000];
地图覆盖物
简介
百度地图sdk支持多种地图覆盖物,帮助您展示更丰富的地图。 地图覆盖物:地图标注(marker)、几何图形(点、折线、弧线、多边形等)、poi检索结果覆盖物、线路规划结果覆盖物等;
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_map/bmkmapcomponent.h>
-(void)viewdidload {
[super viewdidload];
bmkmapview*mapview =[[bmkmapview alloc] initwithframe:self.view.bounds];
//设置mapview的代理
mapview.delegate= self;
//将mapview添加到当前视图中
[self.view addsubview:mapview];
//初始化标注类bmkpointannotation的实例
bmkpointannotation*annotation =[[bmkpointannotation alloc] init];
//设置标注的经纬度坐标
annotation.coordinate=cllocationcoordinate2dmake(39.915,116.404);
//设置标注的标题
annotation.title= @"标注";
//副标题
annotation.subtitle= @"可拖拽";
/**
当前地图添加标注,需要实现bmkmapviewdelegate的-mapview:viewforannotation:方法
来生成标注对应的view
@param annotation 要添加的标注
*/
[mapview addannotation:annotation];
}
#pragma mark -bmkmapviewdelegate
/**
根据anntation生成对应的annotationview
@param mapview 地图view
@param annotation 指定的标注
@return 生成的标注view
*/
-(bmkannotationview*)mapview:(bmkmapview*)mapview viewforannotation:(id<bmkannotation>)annotation {
if([annotation iskindofclass:[bmkpointannotationclass]]){
/**
根据指定标识查找一个可被复用的标注,用此方法来代替新创建一个标注,返回可被复用的标注
*/
bmkpinannotationview*annotationview =(bmkpinannotationview*)[mapview dequeuereusableannotationviewwithidentifier:@"annotationviewidentifier"];
if(!annotationview){
/**
初始化并返回一个annotationview
@param annotation 关联的annotation对象
@param reuseidentifier 如果要重用view,传入一个字符串,否则设为nil,建议重用view
@return 初始化成功则返回annotationview,否则返回nil
*/
annotationview =[[bmkpinannotationview alloc] initwithannotation:annotation reuseidentifier:@"annotationviewidentifier"];
//annotationview显示的图片,默认是大头针
//annotationview.image = nil;
/**
默认情况下annotationview的中心点位于annotation的坐标位置,可以设置centeroffset改变
annotationview的位置,正的偏移使annotationview朝右下方移动,负的朝左上方,单位是像素
*/
annotationview.centeroffset=cgpointmake(0,0);
/**
默认情况下, 弹出的气泡位于annotationview正中上方,可以设置calloutoffset改变annotationview的
位置,正的偏移使annotationview朝右下方移动,负的朝左上方,单位是像素
*/
annotationview.calloutoffset=cgpointmake(0,0);
//是否显示3d效果,标注在地图旋转和俯视时跟随旋转、俯视,默认为no
annotationview.enabled3d=no;
//是否忽略触摸时间,默认为yes
annotationview.enabled=yes;
/**
开发者不要直接设置这个属性,若设置,需要在设置后调用bmkmapview的-(void)mapforcerefresh;方法
刷新地图,默认为no,当annotationview被选中时为yes
*/
annotationview.selected=no;
//annotationview被选中时,是否显示气泡(若显示,annotation必须设置了title),默认为yes
annotationview.canshowcallout=yes;
/**
显示在气泡左侧的view(使用默认气泡时,view的width最大值为32,
height最大值为41,大于则使用最大值)
*/
annotationview.leftcalloutaccessoryview= nil;
/**
显示在气泡右侧的view(使用默认气泡时,view的width最大值为32,
height最大值为41,大于则使用最大值)
*/
annotationview.rightcalloutaccessoryview= nil;
/**
annotationview的颜色: bmkpinannotationcolorred,bmkpinannotationcolorgreen,
bmkpinannotationcolorpurple
*/
annotationview.pincolor=bmkpinannotationcolorred;
//设置从天而降的动画效果
annotationview.animatesdrop=yes;
//当设为yes并实现了setcoordinate:方法时,支持将annotationview在地图上拖动
annotationview.draggable=yes;
//当前view的拖动状态
//annotationview.dragstate;
}
return annotationview;
}
return nil;
}
poi检索
简介
百度地图sdk支持周边检索、区域检索、城市内检索和poi详情信息检索。
周边检索:以某一点为中心,指定距离为半径,根据用户输入的关键词进行poi检索;
区域检索:在指定矩形区域内、根据关键词进行poi检索;
城市内检索:在某一城市内,根据用户输入的关键字进行poi检索;
poi详情信息检索:根据poi的id信息,检索该兴趣点的详情。
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_search/bmksearchcomponent.h>
bmksuggestionsearch*suggestionsearch =[[bmksuggestionsearch alloc]init];
suggestionsearch.delegate= self;
bmksuggestionsearchoption* suggestionoption =[[bmksuggestionsearchoption alloc] init];
suggestionoption.keyword= @"麦当劳";
suggestionoption.cityname= @"北京";
suggestionoption.citylimit=no;
/**
关键词检索,异步方法,返回结果在bmksuggestionsearchdelegate
的ongetsuggestionresult里
suggestionoption sug检索信息类
成功返回yes,否则返回no
*/
bool flag =[suggestionsearch suggestionsearch:suggestionoption];
if(flag){
nslog(@"关键词检索成功");
}else{
nslog(@"关键词检索失败");
}
#pragma mark -bmksuggestionsearchdelegate
/**
关键字检索结果回调
@param searcher 检索对象
@param result 关键字检索结果
@param error 错误码,@see bmkclouderrorcode
*/
-(void)ongetsuggestionresult:(bmksuggestionsearch*)searcher result:(bmksuggestionsearchresult*)result errorcode:(bmksearcherrorcode)error {
//bmksearcherrorcode错误码,bmk_search_no_error:检索结果正常返回
if(error ==bmk_search_no_error){
//实现对检索结果的处理
}
}
//初始化bmkpoisearch实例
bmkpoisearch*poisearch =[[bmkpoisearch alloc] init];
//设置poi检索的代理
poisearch.delegate= self;
//初始化请求参数类bmknearbysearchoption的实例
bmkpoinearbysearchoption*nearbyoption =[[bmkpoinearbysearchoption alloc]init];
/**
检索关键字,必选。
在周边检索中关键字为数组类型,可以支持多个关键字并集检索,如银行和酒店。每个关键字对应数组一个元素。
最多支持10个关键字。
*/
nearbyoption.keywords= @[@"麦当劳"];
//检索中心点的经纬度,必选
nearbyoption.location=cllocationcoordinate2dmake(40.056974,116.307689);
/**
检索半径,单位是米。
当半径过大,超过中心点所在城市边界时,会变为城市范围检索,检索范围为中心点所在城市
*/
nearbyoption.radius=1000;
/**
根据中心点、半径和检索词发起周边检索:异步方法,返回结果在bmkpoisearchdelegate
的ongetpoiresult里
nearbyoption 周边搜索的搜索参数类
成功返回yes,否则返回no
*/
bool flag =[poisearch poisearchnearby:nearbyoption];
if(flag){
nslog(@"poi周边检索成功");
}else{
nslog(@"poi周边检索失败");
}
#pragma mark -bmkpoisearchdelegate
/**
poi检索返回结果回调
@param searcher 检索对象
@param poiresult poi检索结果列表
@param error 错误码
*/
-(void)ongetpoiresult:(bmkpoisearch*)searcher result:(bmkpoisearchresult*)poiresult errorcode:(bmksearcherrorcode)error {
//bmksearcherrorcode错误码,bmk_search_no_error:检索结果正常返回
if(error ==bmk_search_no_error){
//实现对检索结果的处理
}
}
路线规划
简介
百度地图sdk支持公交、驾车、骑行、步行和跨城公共交通路线规划。
公交路线规划:根据起、终点,进行公交路线规划;
驾车线路规划:根据起、终点,不同的策略,进行驾车路线规划,支持设置途经点;
骑行线路规划:根据起、终点,进行自行车骑行路线规划,支持跨城骑行路线规划;
步行线路规划:根据起、终点,进行步行路线规划;
跨城公共交通路线规划:根据起、终点,进行跨城路线规划,支持飞机,火车、大巴、公交等多种出行方案。
功能展示
#import<baidumapapi_base/bmkbasecomponent.h>
#import<baidumapapi_search/bmksearchcomponent.h>
//初始化bmkroutesearch实例
bmkroutesearch*drivingroutesearch =[[bmkroutesearch alloc]init];
//设置驾车路径的规划
drivingroutesearch.delegate= self;
bmkdrivingrouteplanoption*drivingrouteplanoption =[[bmkdrivingrouteplanoption alloc] init];
//实例化线路检索节点信息类对象
bmkplannode*start =[[bmkplannode alloc]init];
//起点名称
start.name= @"天安门";
//起点所在城市
start.cityname= @"北京";
//实例化线路检索节点信息类对象
bmkplannode*end =[[bmkplannode alloc]init];
//终点名称
end.name= @"百度科技园";
//终点所在城市
end.cityname= @"北京市";
//检索的起点,可通过关键字、坐标两种方式指定。cityname和cityid同时指定时,优先使用cityid
drivingrouteplanoption.from= start;
//检索的终点,可通过关键字、坐标两种方式指定。cityname和cityid同时指定时,优先使用cityid
drivingrouteplanoption.to= end;
nsmutablearray* waypointsarray =[[nsmutablearray alloc] initwithcapacity:1];
bmkplannode* waypointitem =[[bmkplannode alloc]init];
waypointitem.cityname= @"北京市";
waypointitem.name= @"西二旗地铁站";
[waypointsarray addobject:waypointitem];
drivingrouteplanoption.waypointsarray= waypointsarray;
/**
发起驾乘路线检索请求,异步函数,返回结果在bmkroutesearchdelegate的ongetdrivingrouteresult中
*/
bool flag =[drivingroutesearch drivingsearch: drivingrouteplanoption];
if(flag){
nslog(@"驾车检索成功");
}else{
nslog(@"驾车检索失败");
}
#pragma mark -bmkroutesearchdelegate
/**
*返回驾乘搜索结果
*@param searcher 搜索对象
*@param result 搜索结果,类型为bmkdrivingrouteresult
*@param error 错误号,@see bmksearcherrorcode
*/
-(void)ongetdrivingrouteresult:(bmkroutesearch*)searcher result:(bmkdrivingrouteresult*)result errorcode:(bmksearcherrorcode)error{
//bmksearcherrorcode错误码,bmk_search_no_error:检索结果正常返回
if(error ==bmk_search_no_error){
//实现对检索结果的处理
}
}
步行导航
简介
v4.2.0 新增步行导航功能,支持普通步行导航、步行ar导航、偏航纠偏等导航功能。
功能展示
#import<baidumapapi_map_for_walknavi/bmkmapcomponent.h>
#import<baidumapapi_walknavi/bmkwalknavicomponent.h>
@property(nonatomic, strong)bmkwalknaviviewcontroller*controller;///导航页面
_controller =[[bmkwalknaviviewcontroller alloc] init];
bool inited =[[bmkwalknavigationmanager sharedmanager] initnaviengine:_controller];
[bmkwalknavigationmanager sharedmanager].routeplandelegate= self;
[bmkwalknavigationmanager sharedmanager].routeguidancedelegate= self;
[bmkwalknavigationmanager sharedmanager].ttsplayerdelegate= self;
if(inited){
nslog(@"sdk-初始化引擎成功");
bmkwalknavilaunchparam*param =[[bmkwalknavilaunchparam alloc] init];
param.startpoint=cllocationcoordinate2dmake(40.049879,116.279853);//起点坐标,百度科技园;
param.endpoint=cllocationcoordinate2dmake(40.058918,116.312621);//终点坐标,西二旗地铁站;
[[bmkwalknavigationmanager sharedmanager] routeplanwithparams:param];
}
#pragma mark -bmkwalkcyclerouteplandelegate
/**
开始算路
*/
-(void)onrouteplanstart:(bmkwalkcyclenavigationtype)navitype {
nslog(@"sdk-开始算路");
}
-(void)onrouteplanresult:(bmkwalkcyclerouteplanerrorcode)errorcode navitype:(bmkwalkcyclenavigationtype)navitype{
if(errorcode ==bmk_walk_cycle_routeplan_result_success){
nslog(@"sdk-算路成功");
_controller.navigationtype=0;
[self.navigationcontroller pushviewcontroller:_controller animated:yes];
}else{
nslog(@"sdk-算路失败");
}
}
//bmkwalknaviviewcontroller
-(void)viewwillappear:(bool)animated {
[superviewwillappear:animated];
self.navigationcontroller.navigationbarhidden=yes;
[[bmkwalknavigationmanager sharedmanager] resume];
[[bmkwalknavigationmanager sharedmanager] startwalknavi:bmk_walk_navigation_mode_walk_normal];//bmk_walk_navigation_mode_walk_ar
}
-(void)viewwilldisappear:(bool)animated {
[superviewwilldisappear:animated];
self.navigationcontroller.navigationbarhidden=no;
[bmkwalknavigationmanager destroy];
}
骑行导航
简介
v4.2.0 新增骑行导航功能,支持普通自行车骑行导航和电动车骑行导航、偏航纠偏等导航功能。
功能展示
//bmkwalkrouteplancontroller
#import<baidumapapi_map_for_walknavi/bmkmapcomponent.h>
#import<baidumapapi_walknavi/bmkwalknavicomponent.h>
@property(nonatomic, strong)bmkwalknaviviewcontroller*controller;///导航页面
bmkwalkcyclenavigationdisplayoption*navioption =[[bmkwalkcyclenavigationdisplayoption alloc] init];
_controller =[[bmkwalknaviviewcontroller alloc] init];
bool inited =[[bmkcyclenavigationmanager sharedmanager] initnaviengine:_controller option:navioption];
[bmkcyclenavigationmanager sharedmanager].routeplandelegate= self;
[bmkcyclenavigationmanager sharedmanager].routeguidancedelegate= self;
[bmkcyclenavigationmanager sharedmanager].ttsplayerdelegate= self;
if(inited){
nslog(@"sdk-初始化引擎成功");
bmkcyclenavilaunchparam*param =[[bmkcyclenavilaunchparam alloc] init];
param.startpoint=cllocationcoordinate2dmake(40.049879,116.279853);//起点坐标,百度科技园;
param.endpoint=cllocationcoordinate2dmake(40.058918,116.312621);//终点坐标,西二旗地铁站;
param.navitype=bmk_walk_cycle_navigation_type_electric_cycle;
[[bmkcyclenavigationmanager sharedmanager] routeplanwithparams:param];
}
#pragma mark -bmkwalkcyclerouteplandelegate
/**
开始算路
*/
-(void)onrouteplanstart:(bmkwalkcyclenavigationtype)navitype {
nslog(@"sdk-开始算路");
}
-(void)onrouteplanresult:(bmkwalkcyclerouteplanerrorcode)errorcode navitype:(bmkwalkcyclenavigationtype)navitype{
if(errorcode ==bmk_walk_cycle_routeplan_result_success){
nslog(@"sdk-算路成功");
_controller.navigationtype=1;
[self.navigationcontroller pushviewcontroller:_controller animated:yes];
}else{
nslog(@"sdk-算路失败");
}
}
//bmkwalknaviviewcontroller
-(void)viewwillappear:(bool)animated {
[superviewwillappear:animated];
self.navigationcontroller.navigationbarhidden=yes;
[[bmkcyclenavigationmanager sharedmanager] resume];
[[bmkcyclenavigationmanager sharedmanager] startcyclenavi];
}
-(void)viewwilldisappear:(bool)animated {
[superviewwilldisappear:animated];
self.navigationcontroller.navigationbarhidden=no;
[bmkcyclenavigationmanager destroy];
}
用户须知

在您使用百度ios地图sdk之前,请先阅读并同意百度地图开放平台服务条款中的各项内容,并申请密钥(ak)才可使用。

您在使用中遇到任何问题,都可以通过反馈给我们,之后会有凯发k8官方旗舰厅的技术支持人员一对一为您处理问题。

免费说明

目前百度地图ios地图sdk境内服务对非商业目的使用的开发者不收取任何费用,开发者可自行下载放心使用。

如您以商业目的(包括但不限于对第三方用户收费、项目投标,以及其他直接或间接获取收益或利益)使用本平台服务,则用户须要事先获得本平台"商用授权"许可。 平台商用授权的授权对象为公司主体。授权成功后,您将会收到平台提供的书面版商用授权书(附带百度公司签章)。

商用授权可点击这里了解详情。商业目的产品使用前请参考使用须知

下一篇

获取密钥

本篇文章对您是否有帮助?

网站地图