Google Directions API旅行模式TRANSIT不适用于street_address

时间:2017-05-01 12:43:22

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

如果我写的是明显的问题,请道歉。 虽然我无法在网上找到任何文件,所以我决定在这里问。

Goolge Directions API中的转接模式是否仅在原点和目的地为兴趣点时才有效?

如果其中一个或两个地址都是street_address类型,我将无法收到包含travel_mode = TRANSIT的响应。

我想通过API实现的结果就像谷歌地图一样,它在原点和目的地之间输出乐观的路线;包括在旅途中途的公共交通工具。

E.g。兴趣点到兴趣点回归正常 https://maps.googleapis.com/maps/api/directions/json?origin=Wynyard%20station&destination=Chatswood%20station&mode=transit&transit_mode=rail&key=[key]

E.g。对street_address的兴趣点返回ZERO_RESULTS https://maps.googleapis.com/maps/api/directions/json?origin=Wynyard%20station&destination=441%20Victoria%20Avenue&mode=transit&key=[key]

E.g。在Google Map中插入“Wynyard Station”作为原点和“441 Victoria Avenue”作为目的地,返回包括公交和步行到目的地的路线。

1 个答案:

答案 0 :(得分:0)

您的请求的问题在于您使用的是不完整的地址字符串' 441 Victoria Avenue'。这真是含糊不清的查询。如果您在地理编码工具中查看,您会看到此字符串已解析为' 441 Victoria Ave,Forrest City,AR 72335,USA'

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D441%2520Victoria%2520Avenue

所以,你试图在澳大利亚的一个地方和美国的另一个地方找到一个公交(火车)方向。

enter image description here

在这种情况下预计会有ZERO_RESULTS。您应指定更精确的地址字符串,或使用自动填充功能使用地点ID搜索公交路线。

https://developers.google.com/maps/faq#geocoder_queryformat

https://developers.google.com/maps/documentation/geocoding/best-practices

例如,使用' 441 Victoria Avenue,Sydney'我可以获得公交路线

https://maps.googleapis.com/maps/api/directions/json?origin=Wynyard%20station&destination=441%20Victoria%20Avenue%2C%20Sydney&mode=transit&alternatives=true&transit_mode=train&key=YOUR_API_KEY

您可以在路线计算器工具中查看:

https://directionsdebug.firebaseapp.com/?origin=Wynyard%20station&destination=441%20Victoria%20Avenue%2C%20Sydney&mode=transit&alternatives=true&transit_mode=train

希望它有所帮助!