javascript - 自定义脚本“一天内多次调用服务:路由”错误
问题描述
我在 Google 电子表格上使用以下函数查找旅行时间以及两个位置或邮政编码之间的交通数据。
输入参数将来自位置、目的地、到达时间(这是在早上 6 点或早上 8 点之间) 具有不同定义时间的相同脚本
根据我的谷歌脚本函数中的上述输入参数,它应该返回旅行时间,但我收到一个错误,即服务在一天内调用了太多次:路线。(第 40 行)。我正在使用下面的自定义函数,我的工作表中有 40 行。这就是函数。有什么办法可以使它成为一个数组公式?这有助于避免不必要的电话吗?
function GetDuration(location1, location2, mode) {
//var arrive = new Date(new Date().getTime() + (10 * 60 * 60 * 1000));//arrive in ten hours from now
// var arrive=new Date(2019, 09, 07, 06);// 7th of September 2019 06:00 am
var arrive = new Date();
arrive.setHours(6,0,0,0);
var directions = Maps.newDirectionFinder().setArrive(arrive)
.setOrigin(location1)
.setDestination(location2)
.setMode(Maps.DirectionFinder.Mode[mode])
.getDirections();
// Get a script lock, because we're about to modify a shared resource.
var lock = LockService.getScriptLock();
// Wait for up to 30 seconds for other processes to finish.
lock.waitLock(20000);
Utilities.sleep(1000);
return directions.routes[0].legs[0].duration.text;
解决方案
你应该看看距离矩阵服务。它允许在多个位置之间执行基本的路线搜索,它不会返回详细的路线,但它有关于路线的基本信息,我认为这对你来说已经足够了。
您需要记住,定位服务是有偿的,您的配额取决于此。我提供的链接还包括有关此内容以及如何设置的信息。
推荐阅读
- wowza - 如何通过 api 从 wowza 云直播中检索当前听众?
- elasticsearch - 使用标记图过滤器和关键字标记器匹配文本字段 - 为什么查询术语的顺序很重要?
- python - 无法将文件从主机复制到 ansible 服务器
- svn - 在存储库的 SVN 转储期间观察到错误 (Visual SVN)
- python - Pandas 按组、时间间隔运行总计
- c - 在一行中查找重复值(二维数组)
- laravel - 带有 chart.js 和 vue.js 的动态图
- python - 如何从 PowerShell/CMD 中的会话查询中导入数字
- python - 如何使用字典将类别与句子匹配
- http - HttpWebRequest 在 .NET Core 2.2 中引发 404 错误,但在 3.0 中有效