取消缩短goo.gl/maps链接的坐标

时间:2019-01-23 15:31:17

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

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

坐标:48.857469,2.295821

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

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

我的问题:

我有一个电子表格,其中包含使用Google地图内的“共享”按钮共享给我的位置的电子表格,该网址会自动缩短网址。我想知道是否有一种方法可以取消缩短网址,以便提取坐标以备将来使用。

我的尝试:

询问了

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

更新:我已遵循this setup tutorial,并且我的脚本已与我的Google API项目相关联。

我的问题:

这似乎很简单。是吗? 如果很简单,并且有人可以快速编写代码,那将是很大的帮助。我将自己回过头来了解代码。

1 个答案:

答案 0 :(得分:1)

您可以使用javascript执行此操作。

在Google脚本中,您可以实现所引用的其他问题中使用的方法。 Google脚本提供了URLFetchApp。在原始JS上下文中,您将使用访存api或XMLHttpRequest。

由于您正在执行重定向,因此可以在重定向之后向PREVENT提供一个options对象。

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

然后,您可以在响应Location标头中找到重定向URL。标头经过编码,因此您可以使用解码URIComponent处理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不起作用或不是重定向,您将要检查响应状态代码并处理任何错误。