我正在创建一个车辆跟踪系统,它可以从Google Play服务位置API获取位置.我将更新间隔设置为5秒,这样可以在汽车行驶时提供良好的效果.为了避免彼此接近更新,例如当车辆在红绿灯处停下时,我将setSmallestDisplacement(int米)设置为50米.我对此的理解是,如果位置变化至少50米,我应该每5秒获得一次更新.但事实并非如此,因为我几乎每隔5秒就会得到它们,这些位置距离只有几米(这是由于正常的GPS漂移).
问题是,我是否理解setSmallestDisplacement()的效果是错误的,还是它不能正常工作?
相关代码:
private LocationRequest request;
private LocationClient client;
request = LocationRequest.create();
request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
request.setInterval(5000);
request.setFastestInterval(1000);
request.setSmallestDisplacement(50);
client = new LocationClient(this, this, this);
if (servicesConnected())
client.connect();
@Override
public void onConnected(Bundle dataBundle) {
try {
gpsConnected = true;
client.requestLocationUpdates(request, this);
Log.i(TAG, "Connected to Google Play Services");
} catch (Exception e) {
Log.e(TAG, "onConnected", e);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2024 次 |
| 最近记录: |