您好,我最近一直在处理需要跟踪此人在行走时行走距离的应用程序。我正在使用位置管理器获取人员坐标(lang和lat)。
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
location.getLatitude();
location.getLongitude();
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
如何使用distanceBetween()方法获取实际行进距离? 我很困惑如何区分起始位置和结束位置,因为位置管理器为您提供当前位置并且每5秒保持一次新位置(这就是我在requestLocationUpdates()上配置的内容)
感谢任何帮助,谢谢
答案 0 :(得分:0)
我很困惑如何区分起始位置和结束位置,因为位置经理会为您提供当前位置并且每隔5秒不断回馈新位置
您已有可用于获取新位置的代码,因此您需要在每次位置更新期间保存旧位置并计算到新位置的距离。
Location oldLoc, newLoc;
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
if (oldLoc!=null) {
if (newLoc == null) {
newLoc = location;
// get distance
return;
}
// else, both not null
oldLoc = newLoc;
newLoc = location;
// get distance
} else { oldLoc = location; }
}