2016-04-28 73 views
1

我正在计算用LatLng(通过拖动标记)指定的用户与距离矩阵api之间的路线距离和运输时间。 但是有时候我弄错了一段距离,看起来好像是不小心使用了收费(或高速公路)。如何避免与距离矩阵使用高速公路?

首先,我曾尝试:

四舍五入原点(和目的地)通过反向地理编码与ROOF_TOP选项,以避免在公路上用户指定的原点位置的LatLng。

我的工作就像是一种魅力,以避免高速公路的起源(或目的地)。

但是后来我加入了一个距离矩阵计算太长的路线,看起来像使用高速公路的问题。

我检查了谷歌地图的估计路线,然后谷歌返回使用高速公路的路线。

但是,当我检查具有相同出处和目的地的优步应用(我假设他们使用谷歌地图的API!)时,他们返回正常价格。所以我认为有一个解决方案...但我找不到...

我发现移动起源有点可以解决这个问题(它似乎像谷歌假设单向交通意外),但我怎么能以编程方式解决它?

回答

2

您可以避免请求中的高速公路avoid参数。该参数支持tolls, highways, ferries and indoors

可能会计算出符合某些限制的指示。通过使用avoid参数和该参数的参数来指示限制以指示限制以避免限制。 可以通过将两个限制都通过避免参数来请求路线,以避免收费,高速公路和渡轮的任何组合。

例如:

avoid=tolls|highways|ferries 

avoid=tolls 

avoid=highways 

avoid=ferries 
+0

根据API文档中,只有一个限制可以被指定。 https://developers.google.com/maps/documentation/distance-matrix/intro – JerryM