如何使用android distanceBetween()方法

时间:2017-01-19 13:02:20

标签: android

您好,我最近一直在处理需要跟踪此人在行走时行走距离的应用程序。我正在使用位置管理器获取人员坐标(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()上配置的内容)

感谢任何帮助,谢谢

1 个答案:

答案 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; } 
    }
相关问题