所有文档
开发指南
利用定位sdk,不仅可以快速精准的获得经纬度信息,还可以根据开发者的使用场景选择不同的定位方式来获得位置信息, 目前百度android 定位sdk支持签到场景、出行场景和运动场景定位。
获取位置描述与获取经纬度使用方法一致,只需在配置定位sdk参数时,做相关的设置即可。
具体步骤如下:
在使用定位sdk进行具体开发工作之前,需, 并对开发工程进行环境配置工作。详细介绍请参考项目创建部分的说明。 此外, google在android 6.0中引入了动态权限获取机制,开发者在使用定位sdk之前, 请详细了解关于android 6.0系统开发须知。
请在主线程中声明locationclient类对象,该对象初始化需传入context类型参数。 推荐使用getapplicationconext()方法获取全进程有效的context。
核心代码段如下:
public locationclient mlocationclient = null;private mylocationlistener mylistener = new mylocationlistener();//bdabstractlocationlistener为7.2版本新增的abstract类型的监听接口//原有bdlocationlistener接口暂时同步保留。具体介绍请参考后文中的说明public voidoncreate(){mlocationclient = new locationclient(getapplicationcontext());//声明locationclient类mlocationclient.registerlocationlistener(mylistener);//注册监听函数}
(1)签到场景:只进行一次定位返回最接近真实位置的定位结果
(2)运动场景:高精度连续定位,适用于运动类开发者场景
(3)出行场景:高精度连续定位,适用于出行类开发者场景
设置方法与获取经纬度中第三步类似,核心代码如下:
locationclientoption locationclientoption = new locationclientoption();// 设置定位场景,根据定位场景快速生成对应的定位参数 以出行场景为例locationclientoption.setlocationpurpose(locationclientoption.bdlocationpurpose.sport);
设置定位场景后,定位sdk会自动配置相应参数。具体配置情况如下。
签到场景:
locationclientoption option = new locationclientoption();option.setlocationmode(locationmode.hight_accuracy);option.setlocationnotify(false);option.setscanspan(0);option.setneednewversionrgc(true);option.setisneedaddress(true);option.setisneedlocationpoilist(true);option.setisneedaltitude(true);option.setisneedlocationdescribe(true);option.setwificachetimeout(10000);
运动场景:
locationclientoption option = new locationclientoption();option.setlocationmode(locationmode.hight_accuracy);option.setlocationnotify(true);option.setscanspan(1000);option.setneednewversionrgc(true);option.setisneedaddress(true);option.setisneedlocationpoilist(false);option.setisneedaltitude(true);option.setisneedlocationdescribe(false);option.setwificachetimeout(1000);
android定位sdk自v7.2版本起,对外提供了abstract类型的监听接口bdabstractlocationlistener, 用于实现定位监听。原有bdlocationlistener暂时保留, 推荐开发者升级到abstract类型的新监听接口使用,该接口会异步获取定位结果, 核心代码如下:
public class mylocationlistener extends bdabstractlocationlistener{@overridepublic voidonreceivelocation(bdlocation location){//此处的bdlocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果//以下只列举部分获取位置描述信息相关的结果//更多结果信息获取说明,请参照类参考中bdlocation类中的说明double latitude = location.getlatitude();//获取纬度信息double longitude = location.getlongitude();//获取经度信息}}
调用locationclient的start()方法,发起请求,在bdabstractlocationlistener接口中,便可获得。 详细信息请参考获取经纬度中第五步的介绍。
上一篇
下一篇
本篇文章对您是否有帮助?