Mur*_*ock 6 javascript google-maps google-maps-api-3 google-maps-direction-api
我们正在调用google指令api来计算往返行程值.一般来说它完美无缺.然而,我遇到了一个用例,它无法提出任何路由.但是,当我们使用具有相同origin,destination,waypoints和travelMode的js google.maps.DirectionsService版本时,它可以正常工作.
失败的电话是:https://maps.googleapis.com/maps/api/directions/json?origin = -33.92873,18.458879&destination=-33.92873,18.458879&waypoints= via: -33.9403,18.666731&mode=driving&key=
回应是
{
"geocoded_waypoints" : [ {}, {}, {} ],
"routes" : [],
"status" : "ZERO_RESULTS"
}
Run Code Online (Sandbox Code Playgroud)
xom*_*ena 10
当您使用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
我希望这能解释你的疑问!
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |