2

我想知道是否有一种简单的方法可以将缩短的谷歌地图链接转换为其等效坐标,在谷歌表格内。例如埃菲尔铁塔附近的一个点:

坐标:48.857469、2.295821

长网址:https ://www.google.com/maps/search/?api=1&query=48.857469,2.295821

短网址:https ://goo.gl/maps/fxgX5rM1snM2

我的问题:

我有一个使用谷歌地图内的“共享”按钮共享给我的位置电子表格,它会自动缩短网址。我想知道是否有办法取消缩短网址,以便我可以提取坐标以供进一步使用。

我的尝试:

有人问了这个问题,下面的解决方案显示了如何使用 Python 来完成。我想使用 Google Apps 脚本以及可能使用 URL 的任何现有 API 来执行此操作。我不熟悉 .gs 代码,以及使用它们的任何技巧。

更新:我已按照此设置教程进行操作,并且我的脚本与我的 Google API 项目相关联。

我的问题:

这似乎是一件简单的事情。是吗?如果它很简单并且有人可以快速编写代码,那将是一个很大的帮助。我会自己回去理解代码。

4

1 回答 1

3

您可以在 javascript 中执行此操作。

在 Google Scripts 中,您可以实现您引用的其他问题中使用的方法。Google Scripts 提供URLFetchApp。在 vanilla JS 上下文中,您将使用 fetch api 或 XMLHttpRequest。

由于您正在跟踪重定向,因此您可以在重定向后向 PREVENT 提供选项对​​象。

var response = URLFetchApp(url, {followRedirects: false});

然后您可以在响应 Location 标头中找到重定向 URL。标头已编码,因此您可以使用 decodeURIComponent 处理 URL。

var longUrl = decodeURIComponent(response.getHeaders()['Location']);

从那里您可以使用您引用的第二个问题中的 RegExp 来获取相关部分:

var matches = longUrl.match(/@([0-9]?[0-9]\.[0-9]*),([0-9]?[0-9]\.[0-9]*)/);

如果 URL 不起作用或不是重定向,您需要检查响应状态代码并处理任何错误。

于 2019-01-23T16:22:50.133 回答