在 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 脚本中出现循环和写入问题
在 Google Apps 脚本中使用 Mandrill API
在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格