android - 在 Android 中计算总行驶距离 Google Maps API V3

标签 android google-maps-api-3 distance google-distancematrix-api

到现在为止,我已经在我的数据库中每 5 秒从我走过的路径中插入所有的纬度和经度集。

现在到达目的地后,我必须计算与纬度、经度集的距离。这不是计算两点之间的行进距离,而是从我的数据库中的经纬度集合中获取总行进距离。

我想到了一种通过获取两点之间的距离来计算总距离的方法 最后把它们加起来

还有比这更好的解决方案吗?请建议和帮助

已读 this SO post但不知道如何使用 Google Maps Distance Matrix API 获得总距离

///////将坐标插入数据库的服务。

private class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            String name = arg1.getAction();
            if (name.equalsIgnoreCase("Location_Changed")) {
                db.insertlatlong(new Latilongi(arg1.getStringExtra("latitude"),
                        arg1.getStringExtra("longitude"),currentDateandTime));


                   } else if (arg1.getAction().matches("android.location.PROVIDERS_CHANGED")) {
                Toast.makeText(MapActivity.this, "in android.location.PROVIDERS_CHANGED",
                        Toast.LENGTH_SHORT).show();
            }
        }
    }

最佳答案

你可以使用下面的方法来得到准确的结果

public double CalculationByDistance(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;
    }

关于android - 在 Android 中计算总行驶距离 Google Maps API V3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798778/

相关文章:

r - 在距离矩阵中找到5个最接近样本的索引

c++ - 两个有符号数之间的距离

java.lang.NullPointerException : Attempt to invoke virtual method 'com. 谷歌.firebase.database

google-maps-api-3 - 改变圆的位置?

android - 数据已缓存在 Android 6 (SharedPreferences)

google-maps - Google Maps Android API : Authorization failure. 确保已启用 "Google Maps Android API v2"。确保以下 Android Key 存在

javascript - Google Maps Api 3 示例不适用于 Jsfiddle

mysql - 在特定时间间隔的随机结果(根据列数据)

安卓 : Ksoap2 org. xmlpull.v1.XmlPullParserException

android - 无法识别原始文件夹,即使它已在 "res"文件夹中创建