php - 如何根据纬度和经度计算距离

标签 php android ios google-maps

<分区>

我正在创建一个骑行应用程序,它是一个类似 Uber 的应用程序。使用 PHP 的 API 与 Android 和 ios 设备进行通信。我的后端代码几乎与 Android 和 ios 应用程序一起完成。现在我在计算实时距离时遇到了问题。如果我使用谷歌距离矩阵 api,谷歌返回我的距离不是我的实时距离。我的意思是谷歌返回基于可用路线。如果我遵循谷歌距离建议的路线对我来说没问题,但如果我使用不同的路线,我该如何计算距离?是否可以计算实时距离?如果可能的话,你能给我一个想法吗?

最佳答案

首先你需要计算经纬度的距离。

要计算距离,请使用以下代码:-

private double getDistance(Context context, Location location, Loation PerviousLocation) {
        if (location != null && PerviousLocation != null) {

            double lat = PerviousLocation.getLatitude();
            double longe = PerviousLocation.getLongitude(); ;

            float[] distance = new float[1];
            Location.distanceBetween(lat, longe, location.getLatitude(), location.getLongitude(), distance);
            return distance[0];
        }
        return 0;
    } 

现在求时间间隔

  private double getDifferenceInTime(Context context, long currentTime, long previousTime) { 
    long diff = currentTime - previousTime;
    return diff / 1000;
}

现在使用速度公式:-

Speed:- distance/time;

Some Time Location Object 也提供速度。使用可以使用Location.getSpeed();

关于php - 如何根据纬度和经度计算距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37452244/

相关文章:

php - iphone 到 mysql blob 没有插入没有错误

android - 使用 Android/iPhone 处理 Google App Engine 上的 session

android - 如何将填充添加到我们通过单击微调器获得的下拉列表中?

iphone - UIScrollView block 运行循环?

PHP MYSQL 为 jquery 日历创建没有重复结束日期的事件

javascript - 如何从 SQL 填充表中获取 ID?

php - sortKeys() 不对集合的键进行排序

android - 拖放列表

ios - Swift - 用数据填充 TableView

iphone - 动态更改单元格高度时 UITableView 的不自然 SCSS