1

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

4

3 回答 3

2

从我最近几天进行的任何研究来看。以下方法最适用于找出旅行中行驶的总距离:

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

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

于 2016-07-04T09:05:55.370 回答
0

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

于 2016-06-29T12:27:39.557 回答
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
};

上述代码的来源

于 2016-06-29T12:30:16.580 回答