在 Google Apps 脚本中使用完整的 Google Maps V3 API 及其所有功能

Posted

技术标签:

【中文标题】在 Google Apps 脚本中使用完整的 Google Maps V3 API 及其所有功能【英文标题】:Use the full Google Maps V3 API and all its features in Google Apps Script 【发布时间】:2012-08-05 21:23:17 【问题描述】:

我想将我的 Google Maps V3 网络应用程序转换为 Google Apps 脚本。如何将完整的 Maps V3 API 使用/加载到 Google Apps 脚本 html 文件(GAS Web 应用程序)中?普通的tag方法好像不行。

我也尝试过 Google Loader,但没有成功。

即使是 URLFetch,但到目前为止还没有运气。

这是一个“独立脚本”,作为网络应用发布。

【问题讨论】:

【参考方案1】:

As of December 2014 可以使用 Google Apps Script HtmlService 中的 IFRAME sandbox mode 使用 Google Maps javascript API v3。将以下 sn-p 发布为 Web 应用程序并在 Google Developer Console 中生成一个公钥,允许 *.googleusercontent.com/* 作为浏览器引用:

function doGet() 
  return HtmlService.createHtmlOutputFromFile('ui')
                    .setSandboxMode(HtmlService.SandboxMode.IFRAME);

-- ui.html--(来自Google Maps Dev. Docs)

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">
      html, body, #map-canvas  height: 100%; margin: 0; padding: 0;
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=API_KEY">
    </script>
    <script type="text/javascript">
      function initialize() 
        var mapOptions = 
          center:  lat: -34.397, lng: 150.644,
          zoom: 8
        ;
        var map = new google.maps.Map(document.getElementById('map-canvas'),
            mapOptions);
      
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
<div id="map-canvas"></div>
  </body>
</html>

【讨论】:

【参考方案2】:

加载器还不能在 HtmlService 中工作。

【讨论】:

不幸的是,Google Apps Script Web Apps 似乎正是我正在寻找的解决方案。关于何时可以从 GAS 访问功能齐全的 Maps API 的任何时间范围/计划?有解决办法吗? 没有解决方法。在不远的将来的某个时候,但我不能保证具体细节。 现在是否比过去更接近未来?即使使用本机沙盒,我也无法让这个或其他 Google API 工作。 @Fred 你搞清楚了吗?我正在尝试在应用程序脚本 HTML 模板中加载地图 JS API,但出现“对象不可扩展”错误。 这也是我遇到的错误。使用 Google JS API 尝试修改 Caja/HtmlService 阻止的 google 对象。

以上是关于在 Google Apps 脚本中使用完整的 Google Maps V3 API 及其所有功能的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 查询错误“非法小时值”导致 Google Apps 脚本中出现循环和写入问题

是否可以使用 Apps 脚本运行 Google 表格插件?

在 Google Apps 脚本中使用 Mandrill API

在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格

Google 表单 - 使用 Google Apps 脚本在项目中添加自定义按钮“更多信息”

如何在 Google Apps 脚本中使用服务帐户对 Google 表格进行身份验证