【问题标题】:Un-shorten a goo.gl/maps link to coordinates取消缩短到坐标的 goo.gl/maps 链接
【发布时间】:2021-09-02 16:40:05
【问题描述】:

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

坐标:48.857469, 2.295821

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

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

我的问题:

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

我的尝试:

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

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

我的问题:

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

【问题讨论】:

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


    【解决方案1】:

    您可以在 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 不起作用或不是重定向。

    【讨论】:

    • 谢谢。我会调查一下。我现在意识到谷歌脚本使用 javascript。当我得到它的工作时,我会接受这个作为答案。
    • 这行得通。最棘手的公园是让 API 工作。我的云和以前的项目有问题......无论如何我将正则表达式更改为 /(-?[\d]*\.[\d]*),(-?[\d]*\.[\d] *)/ 以匹配他们当前的 URL 方案。
    • 如何将它与 React Native 一起使用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多