高德地图(实时获取定位)

获取定位数据

 

第 1 步,配置AndroidManifest.xml

 

声明Service组件

在application标签中声明service组件,每个app拥有自己单独的定位service。

 

然后,声明权限

(6.0以上)

<

!--用于写入缓存数据到扩展存储卡-->

 

最后,设置高德Key

在application标签中加入:

//开发者申请的key

 

第 2 步,初始化定位

请在主线程中声明AMapLocationClient类对象,需要传Context类型的参数。推荐用getApplicationContext()方法获取全进程有效的context。


 

//声明AMapLocationClient类对象

public AMapLocationClient mLocationClient = null;

//声明定位回调监听器public AMapLocationListener mLocationListener = new AMapLocationListener();

//初始化定位

mLocationClient = new AMapLocationClient(getApplicationContext());

//设置定位回调监听

mLocationClient.setLocationListener(mLocationListener);

//声明AMapLocationClient类对象public AMapLocationClient mLocationClient = null;//声明定位回调监听器public AMapLocationListener mLocationListener = new AMapLocationListener();//初始化定位mLocationClient = new AMapLocationClient(getApplicationContext());//设置定位回调监听mLocationClient.setLocationListener(mLocationListener);

 

第 3 步,配置参数并启动定位

 

创建AMapLocationClientOption对象

AMapLocationClientOption对象用来设置发起定位的模式和相关参数。

//声明AMapLocationClient类对象

public AMapLocationClient mLocationClient = null;

//声明定位回调监听器

public AMapLocationListener mLocationListener = new AMapLocationListener();

//初始化定位

mLocationClient = new AMapLocationClient(getApplicationContext());

//设置定位回调监听

mLocationClient.setLocationListener(mLocationListener);

//声明AMapLocationClientOption对象

public AMapLocationClientOption mLocationOption = null;

//初始化AMapLocationClientOption对象

mLocationOption = new AMapLocationClientOption();

 

选择定位场景

 

说明:该部分功能从定位SDK v3.7.0开始提供。如果开发者选择了对应的定位场景,

那么则不用自行设置AMapLocationClientOption中的其他参数,SDK会根据选择的场景自行定制option参数的值,

当然开发者也可以在基础上进行自行设置。实际按最后一次设置的参数值生效。

//声明AMapLocationClient类对象

public AMapLocationClient mLocationClient = null;

//声明定位回调监听器

public AMapLocationListener mLocationListener = new AMapLocationListener();

//初始化定位

mLocationClient = new AMapLocationClient(getApplicationContext());

//设置定位回调监听

mLocationClient.setLocationListener(mLocationListener);

AMapLocationClientOption option = new AMapLocationClientOption();

/** * 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景) */

// option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);

// option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
if(null != mLocationClient){
    mLocationClient.setLocationOption(option);
    //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
    mLocationClient.stopLocation();
    mLocationClient.startLocation();
}

 

选择定位模式

高德定位服务包含GPS和网络定位(Wi-Fi和基站定位)两种能力。定位SDK将GPS、网络定位能力进行了封装,

以三种定位模式对外开放,SDK默认选择使用高精度定位模式。

高精度定位模式:会同时使用网络定位和GPS定位,优先返回最高精度的定位结果,以及对应的地址描述信息

//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);

 

  //设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
        //设置定位模式为AMapLocationMode.Device_Sensors,仅设备模式。
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors);
        //获取一次定位结果:
//该方法默认为false。
        mLocationOption.setOnceLocation(true);

 

//获取最近3s内精度最高的一次定位结果:
//设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
        mLocationOption.setOnceLocationLatest(true);

//设置定位间隔,单位毫秒,默认为2000ms,最低1000ms。
        mLocationOption.setInterval(1000);
        //设置是否返回地址信息(默认返回地址信息)
        mLocationOption.setNeedAddress(true);
        //关闭缓存机制
        mLocationOption.setLocationCacheEnable(true);
        //给定位客户端对象设置定位参数
        mLocationClient.setLocationOption(mLocationOption);
//启动定位
        mLocationClient.startLocation();

 

//结束!!Over   么么哒!!!!!1

 

你可能感兴趣的:(高德地图(实时获取定位))