谷歌表中的距离

时间:2016-03-22 19:58:03

标签: api spreadsheet

我有一组20,000个地址,我需要找到它们和设置地址之间的距离。 该程序工作,但我一直遇到“一天中调用太多次服务”错误消息。有谁知道是否有办法从谷歌购买更多“查询”?

谢谢!

我正在使用的代码:

  function DrivingMeters(origin, destination) {
  var randnumber = Math.random()*10000;
      Utilities.sleep(randnumber);
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .getDirections();
  return directions.routes[0].legs[0].distance.value;
}

function DrivingMiles(origin, destination) {
  return DrivingMeters(origin, destination)/1609.34;  
}

function DrivingSeconds(origin, destination) {
  var directions = Maps.newDirectionFinder()
  .setOrigin(origin)
  .setDestination(destination)
  .getDirections();
  return directions.routes[0].legs[0].duration.value;  
}

function DrivingHours(origin, destination) {
  return DrivingSeconds(origin, destination)/(60*60);
}

1 个答案:

答案 0 :(得分:1)

通过引用“查询”,您的意思是“配额”。不同的服务具有不同的每日配额。可能的异常消息是:

  

Service invoked too many times: Calendar.这表示脚本在一天内调用给定服务的次数太多。

对于普通消费者(gmail.com),这一行值得注意:

  

网址提取电话:20,000 /天

(有关所有文档,请参阅here

在谷歌搜索“购买更多应用程序脚本配额”后,没有有希望的结果。一些变通方法建议使用其他框架或从多个用户分割配额。我的建议是考虑从“消费者”级别升级到“Google Apps for Your Domain”级别(或更高级别)。

P.S。您的问题中的一些示例代码可能有所帮助,因此我们可以缩小您尝试使用的服务范围,以及是否有任何可能的方法可以提高您的代码效率。