我们正在调用google指令api来计算往返行程值。一般来说它完美无缺。然而,我遇到了一个用例,它无法提出任何路由。但是,当我们使用具有相同origin,destination,waypoints和travelMode的js google.maps.DirectionsService版本时,它可以正常工作。
回复是
{
"geocoded_waypoints" : [ {}, {}, {} ],
"routes" : [],
"status" : "ZERO_RESULTS"
}
答案 0 :(得分:8)
当您使用via:
前缀(无中途停留)时,它会添加一些额外的限制。特别是不允许掉头操纵,路线必须直接通过航路点。如果不可能,Directions服务将返回ZERO_RESULTS。
要检查此假设,我创建了完全相同的请求,但是使用了中途停留(没有via:
前缀)。您可以在路线计算器中看到结果:
实际上,你应该在-33.9403,18.666731(标记B)中进行U形转弯,当你尝试创建一个没有中途停留的路线时,这就是ZERO_RESULTS的原因。
官方文件中也证实了这一点:
警告:使用via:前缀来避免中途停留会导致对航点的解释方向非常严格。如果Google Maps Directions API无法通过该点创建路线,则可能会导致路线严重迂回或响应状态代码中出现ZERO_RESULTS。
https://developers.google.com/maps/documentation/directions/intro#Waypoints
我希望这能解释你的怀疑!