我在Google Directions API中搜索了文档,并在网上浏览过,无法找到我的难题的答案 . 我的机构开发了一个API,用于查找使用 Bus 的起点和目的地之间的最新可能偏离,还有一些返回“No_Result”错误 . 但是,当我手动搜索Google Map 时,我可以返回结果 .
我的Google Directions API程序发出以下查询:
返回:
{
"available_travel_modes" : [ "DRIVING", "BICYCLING", "WALKING" ],
"geocoded_waypoints" : [
{
"geocoder_status" : "OK",
"place_id" : "ChIJ7VtqLK7d5okR-bTUfKuHVpo",
"types" : [ "street_address" ]
},
{
"geocoder_status" : "OK",
"place_id" : "ChIJxwHLSqzb5okR1rrjYhcDvkc",
"types" : [ "premise" ]
}
],
"routes" : [],
"status" : "ZERO_RESULTS"
}
但是,当我使用Google Map 手动查询时,我可以通过传输返回结果 .
我已经仔细检查了任何明显的错误(例如使用“Rd”而不是“St”,或者输入一个不存在的地址)但是没有找到任何错误 . 我也改变了计划中的出发/到达时间,没有运气 .
错误消息看起来表明MODE as TRANSIT不是该源/目标对之间的选项 - 但是手动界面没有问题 .
有谁知道为什么谷歌 Map 可能会拒绝API查询,而不是手动查询?或者任何资源来帮助解决这个问题?谢谢!!
2 回答
查询字符串中的模式(
mode=transit
)应该大写 - 请尝试使用mode=TRANSIT
.'All caps'响应(无意中,但是)误导性错误 - Google Maps API服务器在此处没有进行正确的错误检查,如果您给它一个全封闭
mode
参数,无论您编写哪种模式,它都会返回行车路线 .真正的答案是API并不支持所有地方的所有模式,即使谷歌 Map 应用程序确实如此 . 您可以提交功能请求以尝试推送此奇偶校验 . 例如,日本的公共交通:https://issuetracker.google.com/issues/35826181
测试查询以证明如果您使用全部大写字母进行 Map 路线响应并不关心您指定的模式(请务必添加您的API密钥):
驾驶 - https://maps.googleapis.com/maps/api/directions/json?departure_time=now&destination=place_id%3AChIJp4QhcgzyGGARZaBIPuJzfpg&mode=DRIVING&origin=place_id%3AChIJlyOpErWHGGAR0156e32g1Xs&key=API_KEY
过境 - https://maps.googleapis.com/maps/api/directions/json?departure_time=now&destination=place_id%3AChIJp4QhcgzyGGARZaBIPuJzfpg&mode=TRANSIT&origin=place_id%3AChIJlyOpErWHGGAR0156e32g1Xs&key=API_KEY
散步 - https://maps.googleapis.com/maps/api/directions/json?departure_time=now&destination=place_id%3AChIJp4QhcgzyGGARZaBIPuJzfpg&mode=WALKING&origin=place_id%3AChIJlyOpErWHGGAR0156e32g1Xs&key=API_KEY