您现在的位置: 开发 > Android 导航SDK > 开发指南 > 定位信息 > 定位相关设置与回调

定位相关设置与回调 最后更新时间: 2021年01月22日

导航SDK是强依赖定位的,当您初始化AMapNavi时,SDK内部会自行启动定位,默认周期为一秒定位一次,如果您有控制定位频率的需求,可以使用如下接口,为保证导航效果,建议定位频率一秒一次。 

/**
* 启动GPS定位, 带距离和时间参数。
* <p>
* 用户可以手动启动GPS,如果没有启动GPS, 在驾车或者步行导航启动时(startNavi)会自动启动。
* </p>
*
* @param time 位置更新的时间间隔, 单位:毫秒。
* @param dis  位置更新的距离间隔,单位:米。
* @return 返回GPS启动是否成功。true代表成功,false代表失败。
*/
@Override
public boolean startGPS(long time, int dis)
/**
* 启动GPS定位。
* <p>
* 用户可以手动启动GPS,如果没有启动GPS, 在驾车或者步行导航启动时(startNavi)会自动启动。默认定位时间间隔为1秒,变化距离为0。
* </p>
*
* @return 返回GPS启动是否成功。true代表成功,false代表失败。
*/
@Override
public boolean startGPS() /**
* 停止GPS定位。
*
* @return 返回是否停止GPS成功。true,成功;false,失败。
*/
@Override
public boolean stopGPS()

定位相关回调接口在AMapNaviListener类中,接入如下,定位详细信息在AMapNaviLocation中。

/**
* 当GPS位置有更新时的回调函数。
*
* @param location 当前位置的定位信息。
*/
void onLocationChange(AMapNaviLocation location);
/**
* 用户手机GPS设置是否开启的回调函数。
*
* @param enabled true,开启;false,未开启。
*/
void onGpsOpenStatus(boolean enabled);
/**
* 手机卫星定位信号强弱变化的回调
*
* @param isWeak true: 信号弱;false:信号强
* @since 7.5.0
*/
void onGpsSignalWeak(boolean isWeak);

导航SDK从v7.5.0开始,全面支持网络点导航,您无需额外配置,只需升级到最新版本的SDK即可。

手机定位信号可以分为卫星定位、网络定位,三者的精度依次递减,导航是强依赖精确定位的,但有一些地方可能无法收到高精度的卫星定位信号,如城市里的高楼旁边,高架桥下等。所以在这种时候,我们需要网络定位信号来辅助导航,网络点导航是一个补偿逻辑,它能够让用户在定位信号弱的区域也享受到较为精准的导航效果。

是否为网络点导航可以使用AMapNaviLocation中getLocationType方法来判断。

/**
* 获取定位方式
* @return 0:GPS定位 1:网络定位
*/
public int getLocationType()


新用户
福利
示例
中心
常见
问题