Un-shorten a goo.gl/maps link 到坐标

Un-shorten a goo.gl/maps link to coordinates

我想知道是否有一种简单的方法可以将缩短的 google 地图 link 转换为其等效坐标,在 google 张[=39] 中=].例如埃菲尔铁塔附近的一个点:

坐标:48.857469, 2.295821

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

短URL:https://goo.gl/maps/fxgX5rM1snM2

我的问题:

我有一个位置电子表格,使用 google 地图内的 'share' 按钮分享给我,它会自动缩短 url。我想知道是否有办法取消缩短 url 以便我可以提取坐标以供进一步使用。

我的尝试:

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

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

我的问题:

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

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

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

由于您正在跟踪重定向,因此您可以提供一个选项 object 以阻止重定向。

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

然后您可以在响应位置 header 中找到重定向 URL。 header 已编码,因此您可以使用 decodeURIComponent 来处理 URL.

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

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

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

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