我已经在Google Directions API中搜索了文档,也在网上四处寻找,都找不到我的难题的答案。我的机构已经开发了一个应用程序接口,可以使用运输工具查找始发地和目的地之间的最新可能出发时间,并且有几个返回"No_Result“错误。但是,当我手动搜索Google Maps时,我能够返回结果。
我的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地图手动查询时,我能够通过传输返回结果。
我仔细检查了所有明显的错误(比如使用"Rd“而不是"St",或者输入一个不存在的地址),但没有发现任何错误。我还在程序中更改了出发/到达时间,但没有成功。
错误消息看起来像是表明作为传输的模式不是源/目的地对之间的选项-但是手动接口没有问题。
有人知道为什么Google Maps可能会拒绝API查询,而不是手动查询吗?或任何资源来帮助解决这个问题?谢谢!!
发布于 2017-10-30 02:55:36
“all caps”的响应是(无意的,但是)误导性的错误-- Google Maps API服务器在这里没有做正确的错误检查,如果你给它一个全大写的mode参数,无论你写哪种模式,它都会返回驾驶方向。
真正的答案是,API并不支持所有地方的所有模式,即使Google Maps应用程序支持。您可以提交功能请求,以尝试推动此奇偶校验。例如,日本的公共交通:https://issuetracker.google.com/issues/35826181
测试查询以演示Maps Directions响应并不关心您指定的模式(请确保添加您的API密钥):
发布于 2017-08-04 20:03:58
查询字符串中的模式(mode=transit)应该大写-请尝试mode=TRANSIT。
发布于 2019-09-11 20:36:23
我认为这对这个错误很有帮助,主要的问题是let和long的格式不正确,position changed.so应用了这段代码。尽情享受
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [latOffice + "," + longOffice],
destinations: [latitudeS + "," + longitudeS],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: true,
avoidTolls: true
}, function (response, status) {
if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
var distance2 = response.rows[0].elements[0].distance.text;
var duration2 = response.rows[0].elements[0].duration.text;
duration = duration2;
} else {
//alert("Your Request For Distance Not Available");
Swal.fire('Oops...', 'Your Request For Distance Not Available!', 'error');
}https://stackoverflow.com/questions/36649465
复制相似问题