如果起点和终点在 Google 地图中相同,则获取行进距离

Get distance travelled if the starting and ending point is the same in Google Maps

我正在研究 Google 地图方向 API。
我需要计算两点之间的距离。
如果起点和终点相同,我们如何计算行进的距离?

任何人都可以帮助我或对此提出一些建议吗?

试试这个代码

public double Distance(LatLng StartP, LatLng EndP) {
        int Radius = 6371;// radius of earth in Km
        double lat1 = StartP.latitude;
        double lat2 = EndP.latitude;
        double lon1 = StartP.longitude;
        double lon2 = EndP.longitude;
        double dLat = Math.toRadians(lat2 - lat1);
        double dLon = Math.toRadians(lon2 - lon1);
        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
                + Math.cos(Math.toRadians(lat1))
                * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2)
                * Math.sin(dLon / 2);
        double c = 2 * Math.asin(Math.sqrt(a));
        double valueResult = Radius * c;
        double km = valueResult / 1;
        DecimalFormat newFormat = new DecimalFormat("####");
        int kmInDec = Integer.valueOf(newFormat.format(km));
        double meter = valueResult % 1000;
        int meterInDec = Integer.valueOf(newFormat.format(meter));
        Log.i("Radius Value", "" + valueResult + "   KM  " + kmInDec
                + " Meter   " + meterInDec);

        return Radius * c;
    }

如果用户从起点到终点,您将通过以下代码获取距离。

private float distanceCal(double lat1, double lon1, double lat2, double lon2) {
        Location loc1 = new Location(provider);
        loc1.setLatitude(lat1);
        loc1.setLongitude(lon1);

    Location loc2 = new Location(provider);
    loc2.setLatitude(lat2);
    loc2.setLongitude(lon2);

    float distanceInMeters = loc1.distanceTo(loc2);
    return distanceInMeters;
}

 LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        String provider = locationManager.getBestProvider(criteria, false);

但是这里是在你移动的时候获取当前位置,当你到达你的距离为0的目的地时,你会通知用户目的地已经到达。

但是当用户按照自己的方式行进,需要计算沿途行进的距离时,我们需要获取最后一点和当前点之间的距离,并不断追加到你的总距离数据中。