【问题标题】:Android GPS distance CalculationAndroid GPS 距离计算
【发布时间】:2017-01-06 06:09:36
【问题描述】:

我正在尝试计算多个 GPS 目的地之间的距离。

我的方法

我为此使用 Google 的 Matrix API,但它最多允许。 25 分。而且我需要跟踪用户的完整行程。

任何建议都会非常有帮助。

【问题讨论】:

  • 发布你的代码,到目前为止你有什么尝试?
  • 我正在发送此请求,
  • Google 距离矩阵返回两点之间的行驶距离,但不返回两点之间的距离。话虽如此,如果您持有 Google 的高级帐户,则每次调用可以请求 625 个元素(每秒 1000 个元素),这允许您拥有 25 X 25 个起点和目的地或 1 X 625 个。

标签: android gps distance


【解决方案1】:

使用 Android SDK:

尝试使用 Location 对象的 distanceTo 函数,如下所示:

float getTripDistance(List<LatLng> vertices) {
    float totalDistance = 0;

    for (int i = 0; i < vertices.size() - 1; i++) {
        Location tLoc1 = new Location("");
        Location tLoc2 = new Location("");

        tLoc1.setLatitude(vertices.get(i).latitude);
        tLoc1.setLongitude(vertices.get(i).longitude);

        tLoc2.setLatitude(vertices.get(i + 1).latitude);
        tLoc2.setLongitude(vertices.get(i + 1).longitude);

        totalDistance += tLoc1.distanceTo(tLoc2);
    }

    return totalDistance;
}

您可以依次遍历所有点并将每个距离以米为单位相加,以获得总行程距离。

【讨论】:

  • 它有效,但是它给出的距离和谷歌一样吗?
  • 我不为 Google 工作,也没有帮助开发 Android,所以我真的不能告诉你。这是文档:developer.android.com/reference/android/location/… 如果答案对您有用,请将其标记为已回答。
【解决方案2】:

我知道这为时已晚,但这适用于仍在寻找解决方案的用户。

float[] distanceResults = new float[1];
Location.distanceBetween(oldPosition.latitude, oldPosition.longitude,
        newPosition.latitude, newPosition.longitude, distanceResults);

根据文档,上述函数计算两个位置之间的近似距离(以米为单位),以及它们之间最短路径的初始和最终方位(可选)。因此,变量distanceResults 的距离将以米为单位。

【讨论】:

    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2014-02-28
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多