google 地图中两条路线之间的共同距离

Common distance between two routes in google maps

我有一个关于 Google 地图 API 的问题。

假设我们有两个旅行者traveller1 和traveller2。旅行者 1 想从 A 到 B,旅行者 2 从 C 到 D。

Route1: A --> a --> b --> c --> d --> B
Route2: C --> e --> b --> c --> d --> f --> D

有没有办法找出上述路线Route1和Route2之间的共同距离?实际上我的意思是子路线的距离,

b--> c --> d

是否可以通过Google地图API找到这样的距离?我尝试查看各种 Google API,例如方向 API、距离矩阵 API、道路 API 等。但找不到任何内容。

我有什么办法可以做到这一点?

提前致谢。

这里没有 API。但是您可以自己制作一些简单的算法。

也许从节点创建一个连接数组,格式如 Route1 = [[a,b],[b,c],[c,d]],等等 Route2。然后你可以遍历两者,找到共同点:

var common = [];
for(var i=0; i<Route1.length; i++){
  for(var j=0; j<Route2.length; j++){
    if(Route1[i] == Route2[j]){
      common.push(Route1[i]);
    }
  }
}

这里的例子returns只是节点之间的边。但是如果你想找到更大的路线块,你可以自己扩展它(而不是 [[b,c],[c,d]],你可以找到一种方法来加入它们并使 [b,c,d])

正如 kaho 所说,Google 方向 API returns 步骤。这些可以通过使用 routes[0].legs[0].steps[i].end_location, .start_location 并将它们解析为这些连接来格式化为您需要的内容。

我最近有一个,关于相似度等等。

您可以先使用 Google 地图路线 API 获取从 A 到 B 和从 C 到 D 的步数。应该是 response.routes[0].legs[0].steps

然后你可以比较2条路径来检查哪个是"common distance"。

我创建了一个快速演示:http://jsfiddle.net/sb6sdj3r/1/