Uber / Ola如何计算从行程的起点到终点的行驶距离?

时间:2016-06-29 12:22:47

标签: android google-maps-android-api-2 distance android-gps

Uber和Ola移动应用程序:计算起点和点之间的距离行程的终点我们不能直接使用谷歌MAP API,因为它可能无法给出汽车行进的确切路线。如何沿着行进路径放置点,以便我可以使用它们来计算行进的总距离?

3 个答案:

答案 0 :(得分:0)

我的猜测是他们的应用程序在后台运行onLocationChanged()并捕获车速。如果您在行程中拥有所有速度值,则可以计算行驶距离。

答案 1 :(得分:0)

var rad = function(x) {


return x * Math.PI / 180;
};

var getDistance = function(p1, p2) {
  var R = 6378137; // Earth’s mean radius in meter
  var dLat = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());
  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
    Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) *
    Math.sin(dLong / 2) * Math.sin(dLong / 2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
  var d = R * c;
  return d; // returns the distance in meter
};

Source of above code

答案 2 :(得分:0)

我在过去几天进行的任何研究。以下方法效果最佳,以便找出旅行中的总行程距离:

  1. 沿着从起点到终点的路径跟踪(lat,lng)。
  2. 在旅程结束时,向服务器发送呼叫,并捕获所有坐标。
  3. 添加从lat,lng。
  4. 组合计算的距离

    为了减少距离计算Google地图API的调用,最好立即在旅程结束时发送电话。