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

浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
android 定位sdk
百度地图android定位sdk是为android移动端应用提供的一套简单易用的定位服务接口, 专注于为广大开发者提供最好的综合定位服务。通过使用百度定位sdk,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。
该服务目前支持获取海外的经纬度信息。

重要:为了进一步加强对最终用户个人信息的安全保护措施,从定位sdk v9.2.9版本起, 请开发者务必确保调用sdk任何接口前先调用隐私合规接口setagreeprivacy, 否则可能会无法正常使用相关功能。具体可参考隐私合规接口说明。

免费说明

目前百度地图android定位sdk境内服务对非商业目的使用的开发者不收取任何费用,开发者可自行下载放心使用。 如您以商业目的(包括但不限于对第三方用户收费、项目投标,以及其他直接或间接获取收益或利益)使用本平台服务,则用户须要事先获得本平台 "商用授权"许可。平台商用授权的授权对象为公司主体。授权成功后,您将会收到平台提供的书面版商用授权书(附带百度公司签章)。 商用授权可点击这里了解详情。

功能介绍
基础定位
简介
定位sdk的核心能力就是帮助开发者快速、精准的获取用户定位。开发者只需按照如下流程操作,即可获取用户当前经纬度。
功能展示
/**
* 初始化定位参数配置
*/
privatevoidinitlocationoption(){
//定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动
locationclient locationclient =newlocationclient(getapplicationcontext());
//声明locationclient类实例并配置定位参数
locationclientoption locationoption =newlocationclientoption();
mylocationlistener mylocationlistener =newmylocationlistener();
//注册监听函数
locationclient.registerlocationlistener(mylocationlistener);
//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
locationoption.setlocationmode(locationmode.hight_accuracy);
//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
locationoption.setcoortype("gcj02");
//可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
locationoption.setscanspan(1000);
//可选,设置是否需要地址信息,默认不需要
locationoption.setisneedaddress(true);
//可选,设置是否需要地址描述
locationoption.setisneedlocationdescribe(true);
//可选,设置是否需要设备方向结果
locationoption.setneeddevicedirect(false);
//可选,默认false,设置是否当卫星定位有效时按照1s1次频率输出卫星定位结果
locationoption.setlocationnotify(true);
//可选,默认true,定位sdk内部是一个service,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
locationoption.setignorekillprocess(true);
//可选,默认false,设置是否需要位置语义化结果,可以在bdlocation.getlocationdescribe里得到,结果类似于“在北京天安门附近”
locationoption.setisneedlocationdescribe(true);
//可选,默认false,设置是否需要poi结果,可以在bdlocation.getpoilist里得到
locationoption.setisneedlocationpoilist(true);
//可选,默认false,设置是否收集crash信息,默认收集
locationoption.setignorecacheexception(false);
//可选,默认false,设置是否开启卫星定位
locationoption.setopengnss(true);
//可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
locationoption.setisneedaltitude(false);
//设置打开自动回调位置模式,该开关打开后,期间只要定位sdk检测到位置变化就会主动回调给开发者,该模式下开发者无需再关心定位间隔是多少,定位sdk本身发现位置变化就会及时回调给开发者
locationoption.setopenautonotifymode();
//设置打开自动回调位置模式,该开关打开后,期间只要定位sdk检测到位置变化就会主动回调给开发者
locationoption.setopenautonotifymode(3000,1,locationclientoption.loc_sensitivity_hight);
//需将配置好的locationclientoption对象,通过setlocoption方法传递给locationclient对象使用
locationclient.setlocoption(locationoption);
//开始定位
locationclient.start();
}
/**
* 实现定位回调
*/
publicclassmylocationlistenerextendsbdabstractlocationlistener{
@override
publicvoidonreceivelocation(bdlocationlocation){
//此处的bdlocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
//以下只列举部分获取经纬度相关(常用)的结果信息
//更多结果信息获取说明,请参照类参考中bdlocation类中的说明
//获取纬度信息
double latitude =location.getlatitude();
//获取经度信息
double longitude =location.getlongitude();
//获取定位精度,默认值为0.0f
float radius =location.getradius();
//获取经纬度坐标类型,以locationclientoption中设置过的坐标类型为准
string coortype =location.getcoortype();
//获取定位类型、定位错误返回码,具体信息可参照类参考中bdlocation类中的说明
int errorcode =location.getloctype();
}
}
连续定位
简介
实际定位场景中,可能会存在很多的位置抖动,此示例展示了一种对定位结果进行的平滑优化处理。实际测试下,该平滑策略在市区步行场景下,有明显平滑效果,有效减少了部分抖动,开放算法逻辑(具体算法在凯发k8官方旗舰厅官网示例demo的locationfilter类中查找),希望能够对开发者提供帮助。
功能展示
/**
* 初始化定位参数配置
*/
privatevoidinitlocationoption(){
//定位服务的客户端。宿主程序在客户端声明此类,并调用,目前只支持在主线程中启动
locationclient locationclient =newlocationclient(getapplicationcontext());
//声明locationclient类实例并配置定位参数
locationclientoption locationoption =newlocationclientoption();
mylocationlistener mylocationlistener =newmylocationlistener();
//注册监听函数
locationclient.registerlocationlistener(mylocationlistener);
//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
locationoption.setlocationmode(locationmode.hight_accuracy);
//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
locationoption.setcoortype("gcj02");
//可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
locationoption.setscanspan(1000);
//可选,设置是否需要地址信息,默认不需要
locationoption.setisneedaddress(true);
//可选,设置是否需要地址描述
locationoption.setisneedlocationdescribe(true);
//可选,设置是否需要设备方向结果
locationoption.setneeddevicedirect(false);
//可选,默认false,设置是否当gnss有效时按照1s1次频率输出gnss结果
locationoption.setlocationnotify(true);
//可选,默认true,定位sdk内部是一个service,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
locationoption.setignorekillprocess(true);
//可选,默认false,设置是否需要位置语义化结果,可以在bdlocation.getlocationdescribe里得到,结果类似于“在北京天安门附近”
locationoption.setisneedlocationdescribe(true);
//可选,默认false,设置是否需要poi结果,可以在bdlocation.getpoilist里得到
locationoption.setisneedlocationpoilist(true);
//可选,默认false,设置是否收集crash信息,默认收集
locationoption.setignorecacheexception(false);
//可选,默认false,设置是否开启卫星定位
locationoption.setopengnss(true);
//可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
locationoption.setisneedaltitude(false);
//设置打开自动回调位置模式,该开关打开后,期间只要定位sdk检测到位置变化就会主动回调给开发者,该模式下开发者无需再关心定位间隔是多少,定位sdk本身发现位置变化就会及时回调给开发者
locationoption.setopenautonotifymode();
//设置打开自动回调位置模式,该开关打开后,期间只要定位sdk检测到位置变化就会主动回调给开发者
locationoption.setopenautonotifymode(3000,1,locationclientoption.loc_sensitivity_hight);
//需将配置好的locationclientoption对象,通过setlocoption方法传递给locationclient对象使用
locationclient.setlocoption(locationoption);
//开始定位
locationclient.start();
}
/**
* 实现定位回调
*/
publicclassmylocationlistenerextendsbdabstractlocationlistener{
@override
publicvoidonreceivelocation(bdlocationlocation){
//此处的bdlocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
//以下只列举部分获取经纬度相关(常用)的结果信息
//更多结果信息获取说明,请参照类参考中bdlocation类中的说明
//获取纬度信息
double latitude =location.getlatitude();
//获取经度信息
double longitude =location.getlongitude();
//获取定位精度,默认值为0.0f
float radius =location.getradius();
//获取经纬度坐标类型,以locationclientoption中设置过的坐标类型为准
string coortype =location.getcoortype();
//获取定位类型、定位错误返回码,具体信息可参照类参考中bdlocation类中的说明
int errorcode =location.getloctype();
}
}
后台定位
简介
为了最大程度的增加定位进程的存活率,百度android定位sdk提供后台持续定位的能力,可在应用退后台的状态下,持续记录位置信息。具体请参考android8.0定位须知中的介绍。
功能展示
//核心实现代码如下,详细代码请参考凯发k8官方旗舰厅官网demo。
//开启前台定位服务:
notification.builder builder =newnotification.builder(mainactivity.this.getapplicationcontext());
//获取一个notification构造器
intent nfintent =newintent(mainactivity.this.getapplicationcontext(),mainactivity.class);
builder.setcontentintent(pendingintent.getactivity(mainactivity.this,0, nfintent,0))// 设置pendingintent
.setcontenttitle("正在进行后台定位")// 设置下拉列表里的标题
.setsmallicon(r.mipmap.ic_launcher)// 设置状态栏内的小图标
.setcontenttext("后台定位通知")// 设置上下文内容
.setautocancel(true)
.setwhen(system.currenttimemillis());// 设置该通知发生的时间
notification notification =null;
notification = builder.build();
notification.defaults=notification.default_sound;//设置为默认的声音
mlocclient.enablelocinforeground(1001, notification);// 调起前台定位
//停止前台定位服务:
mlocclient.disablelocinforeground(true);// 关闭前台定位,同时移除通知栏
位置提醒
简介
定位sdk支持位置提醒功能,当用户到达开发者设定的位置区域时,会触发相应提示。
功能展示
publiclocationclient mlocationclient =null;
publicbdnotifylistener mylistener =newmynotifylistener();
/**
*请在主线程中声明locationclient类对象,该对象初始化需传入context类型参数。推荐使用getapplicationconext()方法获取全进程有效的context。
*/
publicvoidoncreate(){
//声明locationclient类
mlocationclient =newlocationclient(getapplicationcontext());
//注册监听函数
mlocationclient.registernotify(mylistener);
}
/**
*定义mynotifylister类,继承bdnotifylistener,实现位置监听的回调。
*/
publicclassmynotifylisterextendsbdnotifylistener{
publicvoidonnotify(bdlocation mlocation, float distance){
//已到达设置监听位置附近
}
}
//调用bdnotifylistener的setnotifylocation方法,实现设置位置消息提醒。
//设置位置提醒,四个参数分别是:纬度、精度、半径、坐标类型
mylistener.setnotifylocation(40.0f,116.0f,3000, mlocationclient.getlocoption().getcoortype());
//启动定位,sdk便会自动开启位置消息提醒的监听
mlocationclient.start();
//调用bdnotifylistener的removenotifyevent方法,实现取消位置监听
mlocationclient.removenotifyevent(mylistener);
服务优势

百度地图android定位sdk是为android移动端应用提供的一套简单易用的定位服务接口,专注于为广大开发者提供最好的综合定位服务。 通过使用百度定位sdk,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。

-定位成功率:整体定位成功率高达99.6%。

-定位精度高:卫星定位精度达到10米,wi-fi定位精度达24米,基站定位精度达107米。

-流量小:单次请求产生的网络流量在0.3k,不请求定位时不会产生任何流量。

-速度快:网络定位速度达到200ms(网络正常环境下),ip定位速度小于200ms。

-覆盖广:移动、联通、电信全网络覆盖,基站覆盖率达到99%,wi-fi覆盖率达到99%。

-服务稳定:定位服务稳定性可达到99.999%。

-低功耗:内存占用15.6m,cpu占用率2.2%。

-室内定位:覆盖火车站、机场、商场、客运汽车站、博物馆、综合医院、图书馆等多种场景,利用三角定位技术、 增强wi-fi指纹模型技术、地磁技术、蓝牙技术等,提供精度可达1-3m的室内精准定位服务。
注意:如百度未覆盖您的室内地图数据、室内店铺等信息变更第一时间更新定位信息,或其他室内图室内定位相关需求,您可以。

-海外定位:百度目前覆盖全球200多个国家和地区,支持全球52种语言,拥有海外地区poi总量超过1亿、路网7000万公里。

应用场景

-智能硬件:以智能可穿戴、智能家居、智能交通设备和vr设备为代表,解决用户定位难题,助力开发者实现用户精准定位、远程定位、地理围栏监控提醒等功能。

-电商购物:基于用户的精确位置,为用户推荐商品,为用户自动填写收货地址,优化送货体验,通过精准定位实时查看运输位置。

-出行服务:为开发者提供出行用车服务,利用精准定位和位置描述,明确用车起点、终点,帮助司机更好的找到用车用户。

-影音娱乐:利用精准定位服务,获取用户位置,为用户推荐基于lbs的相关内容,推荐周边其他用户,增强用户社交属性,助力开发者为用户进行精准化营销推送。

下一篇

获取密钥

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

网站地图