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

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

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

产品简介

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

重点功能简介
地图展示与交互
简介
地图展示:普通地图(2d,3d)、卫星图和实时交通图,开放高清4k地图显示。
地图交互:可通过接口或手势控制来实现地图的单击、双击、长按、缩放、旋转、改变视角等操作。
功能展示
publicclassmainactivityextendsactivity{
privatemapview mmapview =null;
@override
protectedvoidoncreate(bundle savedinstancestate){
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
//获取地图控件引用
mmapview =(mapview)findviewbyid(r.id.bmapview);
mbaidumap = mmapview.getmap();
//显示卫星图层
mbaidumap.setmaptype(baidumap.map_type_satellite);
}
@override
protectedvoidonresume(){
super.onresume();
//在activity执行onresume时必须调用mmapview. onresume ()
mmapview.onresume();
}
@override
protectedvoidonpause(){
super.onpause();
//在activity执行onpause时必须调用mmapview. onpause ()
mmapview.onpause();
}
@override
protectedvoidondestroy(){
super.ondestroy();
//在activity执行ondestroy时必须调用mmapview.ondestroy()
mmapview.ondestroy();
}
}
室内地图
简介
自百度地图sdk v4.0版本起,室内图功能正式上线,辅助开发者实现全新的地理位置服务体验,室内地图与百度地图app同步更新。
支持的公众建筑包含购物商场、机场和火车站等交通枢纽、医院等。覆盖全国4000 个大型购物中心。
功能展示
@override
publicvoidonbaseindoormapmode(boolean in,mapbaseindoormapinfo mapbaseindoormapinfo){
if(in){
// 进入室内图
// 通过获取回调参数 mapbaseindoormapinfo 便可获取室内图信息,包含楼层信息,室内id等
}else{
// 移除室内图
}
}
});
//实现楼层间地图切换,展示不同楼层的室内图
switchfloorerror switchfloorerror = mbaidumap.switchbaseindoormapfloor(strfloor, floorid);
//上面代码中,strfloor表示室内图楼层,格式为f1,b1… strid 表示室内图id;返回值switchfloorerror 用于标识楼层切换错误信息, 具体如下:
//切换楼层成功
switch_ok
// 切换楼层, 室内id信息错误
floor_info_error,
//楼层溢出
floor_overlflow,
//切换楼层室内id与当前聚焦室内id不匹配
focused_id_error,
//切换楼层失败
switch_error
境外地图
简介
百度地图sdk支持境外地图的展示能力,包含全球200多个国家和地区详细道路、poi等数据展示。
功能展示
/**
* 初始化地图sdk
*/
publicclassdemoapplicationextendsapplication{
@override
publicvoidoncreate(){
super.oncreate();
//在使用sdk各组件之前初始化context信息,传入applicationcontext
sdkinitializer.initialize(this);
//自4.3.0起,百度地图sdk所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括bd09ll和gcj02两种坐标,默认是bd09ll坐标。
sdkinitializer.setcoordtype(coordtype.bd09ll);
}
}
/**
*创建activity, 地图生命周期管理
*/
publicclassmainactivityextendsactivity{
privatemapview mmapview =null;
@override
protectedvoidoncreate(bundle savedinstancestate){
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
//获取地图控件引用
mmapview =(mapview)findviewbyid(r.id.bmapview);
//地图状态参数配置(经纬度是国外)
mapstatus ms =newmapstatus.builder().zoom(10).target(newlatlng(51.50556,-0.07556)).build();
mapstatusupdate u =mapstatusupdatefactory.newmapstatus(ms);
//更新地图状态
mbaidumap.animatemapstatus(u);
}
@override
protectedvoidonresume(){
super.onresume();
//在activity执行onresume时必须调用mmapview. onresume ()
mmapview.onresume();
}
@override
protectedvoidonpause(){
super.onpause();
//在activity执行onpause时必须调用mmapview. onpause ()
mmapview.onpause();
}
@override
protectedvoidondestroy(){
super.ondestroy();
//在activity执行ondestroy时必须调用mmapview.ondestroy()
mmapview.ondestroy();
}
}
地图覆盖物
简介
百度地图sdk支持多种地图覆盖物,帮助您展示更丰富的地图。
地图覆盖物:地图标注(marker、infowindow)、几何图形(点、折线、弧线、多边形、圆、文字等)、poi检索结果覆盖物、线路规划结果覆盖物等。以下是marker动画示例展示(以缩放动画为例)。
功能展示
//创建marker
markeroptions ooa =newmarkeroptions().position(lla).icon(bda);
//添加marker
mmarkera =(marker)(mbaidumap.addoverlay(ooa));
privateanimationgetscaleanimation(){
//创建缩放动画
scaleanimation mscale =newscaleanimation(1f, 2f, 1f);
//设置动画执行时间
mscale.setduration(2000);
//动画重复模式
mscale.setrepeatmode(animation.repeatmode.restart);
//动画重复次数
mscale.setrepeatcount(1);
//设置缩放动画监听
mscale.setanimationlistener(newanimation.animationlistener(){
@override
publicvoidonanimationstart(){
}
@override
publicvoidonanimationend(){
}
@override
publicvoidonanimationcancel(){
}
@override
publicvoidonanimationrepeat(){
}
});
return mscale;
}
/**
* 开启单边缩放动画 x或y方向
*/
publicvoidstartsinglescaleanimation(){
//marker设置动画
mmarkerg.setanimation(getsinglescaleanimation());
//开启marker动画
mmarkerg.startanimation();
}
poi检索
简介
百度地图sdk支持周边检索、区域检索、城市内检索和poi详情信息检索。
周边检索:以某一点为中心,指定距离为半径,根据输入的关键词进行poi检索。
区域检索:在指定矩形区域内、根据关键词进行poi检索。
城市内检索:在某一城市内,根据用户输入的关键字进行poi检索。
poi详情信息检索:根据poi的uid信息,检索该poi点的详情。
功能展示
/**
* 周边poi检索示例
*/
publicvoidnearbypoisearch(){
//创建poi检索实例
poisearch poisearch =poisearch.newinstance();
//创建poi监听者
ongetpoisearchresultlistener poilistener =newongetpoisearchresultlistener(){
@override
publicvoidongetpoiresult(poiresult result){
//获取poi检索结果
}
......
};
//设置poi监听者该方法要先于检索方法searchnearby(poinearbysearchoption)前调用,否则会在某些场景出现拿不到回调结果的情况
poisearch.setongetpoisearchresultlistener(poilistener);
//设置请求参数
poinearbysearchoption nearbysearchoption =newpoinearbysearchoption()
.keyword("餐厅")//检索关键字
.location(center)//检索位置
.pagenum(loadindex)//分页编号,默认是0页
.pagecapacity(20)//设置每页容量,默认10条
.radius(radius);//附近检索半径
//发起请求
poisearch.searchnearby(nearbysearchoption);
//释放检索对象
poisearch.destroy();
}
路线规划
简介
百度地图sdk支持公交、驾车、骑行、步行和跨城公共交通路线规划。
公交路线规划:根据起、终点,进行公交路线规划;
驾车线路规划:根据起、终点,不同的策略,进行驾车路线规划,支持设置途经点;
骑行线路规划:根据起、终点,进行自行车骑行路线规划,支持跨城骑行路线规划;
步行线路规划:根据起、终点,进行步行路线规划;
跨城公共交通路线规划:根据起、终点,进行跨城路线规划,支持飞机,火车、大巴、公交等多种出行方案。
功能展示
/**
* 驾车路线规划代码示例
*/
publicvoiddrivingroute(){
//创建驾车线路规划检索实例;
routeplansearch routeplansearch =routeplansearch.newinstance();
//创建驾车线路规划检索监听者;
ongetrouteplanresultlistener listener =newongetrouteplanresultlistener(){
publicvoidongetdrivingrouteresult(drivingrouteresult result){
//获取驾车线路规划结果
}
......
};
//设置驾车线路规划检索监听者,该方法要先于检索方法drivingsearch(drivingrouteplanoption)前调用,否则会在某些场景出现拿不到回调结果的情况
routeplansearch.setongetrouteplanresultlistener(listener);
//准备检索起、终点信息;
plannode stnode =plannode.withcitynameandplacename("北京","龙泽");
plannode ennode =plannode.withcitynameandplacename("北京","西单");
//发起驾车线路规划检索;
routeplansearch.drivingsearch((newdrivingrouteplanoption())
.from(stnode)
.to(ennode));
步行导航
简介
自v4.4.0起,新增步行导航功能,支持普通步行导航、步行ar导航、偏航纠正等导航功能。
功能展示
//设置导航的起终点信息
latlng startpt =newlatlng(40.047416,116.312143);
latlng endpt =newlatlng(40.048424,116.313513);
walknavilaunchparam param =newwalknavilaunchparam().stpt(startpt).endpt(endpt);
// 使用步行导航前,需要初始化引擎初。
walknavigatehelper.getinstance().initnaviengine(this,newiwengineinitlistener(){
@override
publicvoidengineinitsuccess(){
log.d(ltag,"引擎初始化成功");
routeplanwithparam();
}
@override
publicvoidengineinitfail(){
log.d(ltag,"引擎初始化失败");
}
});
/**
* 引擎初始化成功之后,发起导航算路。算路成功后,在回调函数中设置跳转至诱导页面。
* 开始算路
*/
publicvoidrouteplanwithparam(){
walknavigatehelper.getinstance().routeplanwithparams(param,newiwrouteplanlistener(){
@override
publicvoidonrouteplanstart(){
log.d(ltag,"开始算路");
}
@override
publicvoidonrouteplansuccess(){
log.d(ltag,"算路成功,跳转至诱导页面");
intent intent =newintent();
intent.setclass(bnavimainactivity.this,wnaviguideactivity.class);
startactivity(intent);
}
@override
publicvoidonrouteplanfail(walkrouteplanerror error){
log.d(ltag,"算路失败");
}
});
}
//初始化步行导航过程管理类
walknavigatehelper mnavihelper =walknavigatehelper.getinstance();
// 在导航页面wnaviguideactivity.this的oncreate方法中,调用mnavihelper.oncreate(wnaviguideactivity.this)创建诱导view。
view view = mnavihelper.oncreate(wnaviguideactivity.this);
if(view !=null){
setcontentview(view);
}
// 开始导航
mnavihelper.startwalknavi(wnaviguideactivity.this);
//在步行导航页面对应的acticity的生命周期方法中分别调用walknavigatehelper类中的对应生命周期方法。
@override
protectedvoidonresume(){
super.onresume();
mnavihelper.resume();
}
@override
protectedvoidonpause(){
super.onpause();
mnavihelper.pause();
}
@override
protectedvoidondestroy(){
super.ondestroy();
mnavihelper.quit();
}
//导航状态信息,主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等
mnavihelper.setrouteguidancelistener(this,newiwrouteguidancelistener(){
@override
publicvoidonrouteguideiconupdate(drawable icon){
//诱导图标更新
}
@override
publicvoidonrouteguidekind(routeguidekind routeguidekind){
//诱导枚举信息
}
@override
publicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){
//诱导信息
}
@override
publicvoidonremaindistanceupdate(charsequence charsequence){
// 总的剩余距离
}
@override
publicvoidonremaintimeupdate(charsequence charsequence){
//总的剩余时间
}
@override
publicvoidongpsstatuschange(charsequence charsequence,drawable drawable){
//gps状态发生变化,来自诱导引擎的消息
}
@override
publicvoidonroutefaraway(charsequence charsequence,drawable drawable){
//偏航信息
}
@override
publicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){
//偏航规划中的信息
}
@override
publicvoidonreroutecomplete(){
//重新算路成功
}
@override
publicvoidonarrivedest(){
//到达目的地
}
@override
publicvoidonvibrate(){
//震动
}
});
}
//设置诱导信息回调监听,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务sdk。
//获取语音播报文本方法(注:该接口需要在startwalknavi方法之前调用,否则不会有回调):
mnavihelper.setttsplayer(newibttsplayer(){
/**
* 诱导文本回调
* @param s 诱导文本
* @param b 是否抢先播报
* @return
*/
@override
public int playttstext(string s, boolean b){
return0;
}
});
骑行导航
简介
自v4.2.0起,新增普通骑行导航功能,支持骑行导航、偏航纠正等全部功能。
自v4.4.0起,新增电动车骑行导航,同时支持普通自行车骑行导航(简称:普通骑行导航)和电动车骑行导航,默认为普通骑行导航,旧版用户不受影响。
功能展示
//通过设置bikenavilaunchparam对象中的vehicle的值区分:vehicle :0:普通骑行导航 ; 1:电动车骑行导航,不设置vehicle的值时,默认为0 普通骑行导航。
startpt =newlatlng(40.047416,116.312143);
endpt =newlatlng(40.048424,116.313513);
param =newbikenavilaunchparam().stpt(startpt).endpt(endpt).vehicle(0);
// 使用骑行导航前,需要初始化骑行导航引擎。
bikenavigatehelper.getinstance().initnaviengine(this,newibengineinitlistener(){
@override
publicvoidengineinitsuccess(){
log.d(ltag,"引擎初始化成功");
routeplanwithparam();
}
@override
publicvoidengineinitfail(){
log.d(ltag,"引擎初始化失败");
}
});
/**
* 算路设置起、终点参数,然后在回调函数中设置跳转至诱导页面
* 开始算路
*/
publicvoidrouteplanwithparam(){
param =newbikenavilaunchparam().stpt(startpt).endpt(endpt);
bikenavigatehelper.getinstance().routeplanwithparams(param,newibrouteplanlistener(){
@override
publicvoidonrouteplanstart(){
log.d(ltag,"开始算路");
}
@override
publicvoidonrouteplansuccess(){
log.d(ltag,"算路成功,跳转至诱导页面");
intent intent =newintent();
intent.setclass(bnavimainactivity.this,bnaviguideactivity.class);
startactivity(intent);
}
@override
publicvoidonrouteplanfail(bikerouteplanerror error){
log.d(ltag,"算路失败");
}
});
}
// 获取诱导页面地图展示view
//创建诱导view,并接收回调事件。在activity生命周期内调用诱导bikenavigatehelper对应的生命周期函数。
view view = mnavihelper.oncreate(bnaviguideactivity.this);
if(view !=null){
setcontentview(view);
}
// 开始导航
mnavihelper.startbikenavi(bnaviguideactivity.this);
// 设置诱导监听, 主要包括导航开始、结束,导航过程中偏航、偏航结束、诱导信息(包含诱导默认图标、诱导类型、诱导信息、剩余距离、时间、振动回调等。
mnavihelper.setrouteguidancelistener(this,newibrouteguidancelistener(){
@override
publicvoidonrouteguideiconupdate(drawable icon){
}
@override
publicvoidonrouteguidekind(routeguidekind routeguidekind){
}
@override
publicvoidonroadguidetextupdate(charsequence charsequence,charsequence charsequence1){
}
@override
publicvoidonremaindistanceupdate(charsequence charsequence){
}
@override
publicvoidonremaintimeupdate(charsequence charsequence){
}
@override
publicvoidongpsstatuschange(charsequence charsequence,drawable drawable){
}
@override
publicvoidonroutefaraway(charsequence charsequence,drawable drawable){
}
@override
publicvoidonrouteplanyawing(charsequence charsequence,drawable drawable){
}
@override
publicvoidonreroutecomplete(){
}
@override
publicvoidonarrivedest(){
}
@override
publicvoidonvibrate(){
}
@override
publicvoidongetroutedetailinfo(bikeroutedetailinfo bikeroutedetailinfo){
}
});
//设置诱导信息回调监听,此组件只提供导航过程中的文本输出,不包含语音播报功能,需要自行传入对应的语音回调,形成播报功能。建议使用百度语音识别服务sdk。
//获取语音播报文本方法(注:该接口需要在startwalknavi方法之前调用,否则不会有回调):
mnavihelper.setttsplayer(newibttsplayer(){
/**
* 诱导文本回调
* @param s 诱导文本
* @param b 是否抢先播报
* @return
*/
@override
public int playttstext(string s, boolean b){
return0;
}
});
用户须知

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

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

免费说明

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

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

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

下一篇

获取密钥

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

网站地图