计算两个地址之间距离时的错误

时间:2015-06-12 13:49:37

标签: google-maps-api-3 google-apps-script google-sheets

我在电子表格中使用以下脚本来计算两个城市或城市之间的行车距离以及另一个城市的邮政编码。它同时运行大约25个位置。为了更好地解释,我有单元格B3,我每次进入一个新的城市。然后将该脚本用于与我的25个工厂位置相邻的单元格中,以计算从我的每个工厂到可变城市的距离。

它使用在映射api中构建的google工作表并在80%的计算中工作,但从undefined返回“TypeError:Can Not Read Property”leg。(第16行)。它失败的植物因每个新城市而异所以它不像是在某些地方。它几乎就像它完成其中一些之前的api时间。我将它分成两个单独的脚本,名称各异,并且工作了一天但是20%再次失败。 / p>

为了让事情变得更奇怪,我有另一个脚本根据距变量地址的最近距离对植物进行分类。当您对植物进行分类时,即使是有错误的植物也会根据距离到达正确的位置。所以它就像距离脚本正在获得正确的差异,但仍然显示错误。

清除泥土?我喜欢任何可以解决问题的输入或者可以解决我的问题的替代映射api。

django-allauth

4 个答案:

答案 0 :(得分:2)

您是否尝试在directions.routes [0] .legs [0] .distance.value?

周围使用try-catch块?
try{
    return directions.routes[0].legs[0].distance.value/1609.34;
} 
catch (e){
 console.log("error",e)
}

或者你可以尝试这样的事情

alert(directions);
alert(directions.routes[0]);
alert(directions.routes[0].legs[0]);
alert(directions.routes[0].legs[0].distance);
alert(directions.routes[0].legs[0].distance.value);

等等......找出第一个未定义的那个。这可能有助于您调试问题。

答案 1 :(得分:1)

启用方向Api

1)转到“谷歌云平台” 2)转到“ Api和服务” 3)搜索“方向api”并将其启用

答案 2 :(得分:0)

路线服务受配额和费率限制。在解析结果之前检查返回状态。

对于很多距离(或至少大于10),请查看DistanceMatrix。

答案 3 :(得分:0)

我能够从脚本编辑器运行脚本,但不能从电子表格运行脚本。错误是"无法读取属性腿"从电子表格调用函数时。但是,当从脚本编辑器调用并包含正确的值时,该属性就位。

您可能需要使用WEB API并拥有API KEY: Google Apps Script - How to get driving distance from Maps for two points in spreadsheet