【问题标题】:Showing errors while creating Google Maps URL from a Sheets using App Scripts?使用应用脚本从表格创建 Google 地图 URL 时显示错误?
【发布时间】:2021-01-10 08:53:51
【问题描述】:

我在 Google 表格中有纬度和经度值,我想使用应用脚本绘制 Google 地图 URL。我有一个付费的 Google Maps API 密钥,但在脚本编辑器中找不到将它与我的应用脚本代码集成的方法?

在执行代码时,它显示错误消息,

“谷歌地图平台服务器 拒绝了你的请求。您必须使用 API 密钥来验证每个 对 Google Maps Platform API 的请求。如需更多信息, 请参考http://g.co/dev/maps-no-account"

代码如下:

    function mappingLoc() {
        var spreadsheet = SpreadsheetApp.getActive();
        var dashboard = spreadsheet.getSheetByName('Dashboard');
        var tempdataset = spreadsheet.getSheetByName('TempDataSet');
    
        var data = tempdataset.getLastRow();
        var latis = [];
        var latis = tempdataset.getRange(2, 4, data).getValues();  
    
        var longis = [];
        var longis = tempdataset.getRange(2, 5, data).getValues();        
          
        //var map = Maps.newStaticMap().addMarker(latis, longis);
        var map=latis.reduce((map,[lat],i)=>map.addMarker(Number(lat),Number(longis[i][0])),Maps.newStaticMap());
        dashboard.getRange("A71").setValue(map.getMapUrl());          
     }

【问题讨论】:

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


【解决方案1】:

静态地图 API 的免费使用有限制

here:

Maximum Queries per Second (QPS): 500也有一个限制

换句话说:

如果您每月执行超过 100 000 个请求或每秒超过 500 个请求,您将需要付费。

如果您有兴趣:Here,您可以找到有关如何设置计费帐户和获取付费服务的 API 密钥的信息。

或者:

减少您的请求总量,尤其是请求速度,以继续免费使用静态地图 API。

【讨论】:

  • 这里的请求是什么意思?例如,我有 500 组经度和纬度,我生成一个链接,然后单击该链接以绘制 500 点的地图。是单个请求还是 500 个请求?抱歉,我不清楚您的 cmets,“减少您的请求总量,尤其是请求速度,以继续免费使用静态地图 API。”请澄清。
  • 例如map.addMarker() 是一个请求。因此,如果您对var latis = tempdataset.getRange(2, 4, data).getValues(); 的每个值执行此请求 - 请求的金额对应于data 的大小。 `longis~ 也一样。换句话说,您需要以每秒执行少于 500 个请求的方式在 suhc 中重写您的 cpode。
  • 这是考勤系统的一部分。我的请求数始终少于每秒 500 个。我每班有 100 名学生,所以有 200 个具体的位置数据。我想要的是,在参加特定班级的 100 名学生后,代码将生成一张指向学生位置的地图,以检测不公平的手段。这是一个志愿项目,所以老师不能在这里付钱。因此,我必须保持它免费。可以帮忙修改一下上面的代码吗?
  • 您可以在您的请求之间实现Utilities.sleep() 调用以降低您的请求率。看看例如100 毫秒适合您。请注意不要超过 [最大脚本执行时间](developers.google.com/apps-script/guides/services/…)。
  • @ziganotscchka 我做了硬编码 var data = 10,所以总数据数据请求将是 20。我是否需要配置 MAP API,即使它在免费限制内。仍然显示该消息,他的 Google Maps Platform 服务器拒绝了您的请求。您必须使用 API 密钥来验证对 Google Maps Platform API 的每个请求。
猜你喜欢
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 2022-11-27
  • 2014-05-18
  • 1970-01-01
相关资源
最近更新 更多