我正在使用Google Maps API网络服务Directions API或Distance Matrix API来查找位置之间的行程距离和时间。
似乎API仅支持计算一个源和一个目的地之间的路由。 (对于Distance Matrix API,计算源和目的地之间的多个组合。)
我的情况是,我想知道沿着一系列(如有序数组)位置的多支路旅程的路线(实际上,只是旅行时间和距离)。
因此,考虑到A
,B
,C
,D
这四个地点,我知道如何计算任何一对A-B
之间的路线, A-C
,A-D
,B-C
等等。我想计算A-B-C-D
或A-C-D-B
或A-D-B-C
的路线,依此类推。我提供路线和腿的顺序,所以我不是要求解决旅行商问题。
这可以通过Google Maps Directions API或Distance Matrix API实现吗?
显然,我可以自己链接这些位置,因此请在单独的调用中询问各个路段的路线,然后按所需顺序将它们一起添加:A-C
+ C-D
+ {{1变成D-B
。我希望通过一个电话可以实现。
(我已经找到了类似的问题,但没有找到这个问题。)
答案 0 :(得分:3)
感谢@geocodezip,答案是添加'航路点'在原点和目的地之间,如documentation of the Directions API。
中所述例如,请求https://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA
通过查尔斯敦和列克星敦计算波士顿和康科德之间的路线。
根据
,旅行推销员问题也得到了部分解决默认情况下,路线服务按给定顺序计算通过提供的路标的路线。或者,您可以将
optimize:true
作为waypoints参数中的第一个参数传递,以允许Directions服务通过以更有效的顺序重新排列路标来优化提供的路线。