谷歌方向服务返回不同的航路点

时间:2017-10-03 20:54:56

标签: google-maps google-maps-api-3 google-direction

我正在使用Direction Service API,其中包含via waypoints列表,返回距离为5.9Km。 https://maps.googleapis.com/maps/api/directions/json?origin=43.463368,1.568641&destination=43.459847,1.572251&waypoints=via:43.463073,1.569196|via:43.462763,1.569736|via:43.462436,1.570256|via:43.462077,1.570725|via:43.46163,1.571009|via:43.461188,1.57133|via:43.460735,1.57162|via:43.460289,1.571931&key=XXXXXXXXXXXXXXXXXXXX&departure_time=now

我正在使用谷歌地图中相同的航点检查相同的旅程,它按预期返回0.5公里的距离。 https://www.google.fr/maps/dir/' 43.463368,1.568641' /' 43.463073,1.569196' /' 43.462763,1.569736' /' 43.462436,1.570256&# 39 /' 43.462077,1.570725' /' 43.46163,1.571009' /' 43.461188,1.57133' /' 43.460735,1.57162' /' 43.460289,1.571931' /' 43.459847,1.572251'

有没有人遇到过这样的问题?任何人都能解释为什么我会看到这样的差异吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

当您使用via:前缀(无中途停留)时,它会添加一些额外的限制。特别是不允许掉头机动,路线必须直接通过航路点。

官方文件说明如下:

  

警告:使用via:前缀来避免中途停留会导致对航点的解释方向非常严格。如果Google Maps Directions API无法通过该点创建路线,则可能会导致路线严重迂回或响应状态代码中出现ZERO_RESULTS。

https://developers.google.com/maps/documentation/directions/intro#Waypoints

现在让我们看看路线计算器

中的示例

https://directionsdebug.firebaseapp.com/?origin=43.463368%2C1.568641&destination=43.459847%2C1.572251&mode=driving&waypoints=via:43.463073%2C1.569196%7Cvia:43.462763%2C1.569736%7Cvia:43.462436%2C1.570256%7Cvia:43.462077%2C1.570725%7Cvia:43.46163%2C1.571009%7Cvia:43.461188%2C1.57133%7Cvia:43.460735%2C1.57162%7Cvia:43.460289%2C1.571931

正如您所看到的,航路点5和6将需要一种不允许使用via:前缀并导致严重绕道的掉头

enter image description here

现在将其与没有via:前缀

的路线进行比较

https://directionsdebug.firebaseapp.com/?origin=43.463368%2C1.568641&destination=43.459847%2C1.572251&mode=driving&waypoints=43.463073%2C1.569196%7C43.462763%2C1.569736%7C43.462436%2C1.570256%7C43.462077%2C1.570725%7C43.46163%2C1.571009%7C43.461188%2C1.57133%7C43.460735%2C1.57162%7C43.460289%2C1.571931

我希望这可以解决你的问题!