You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Maps短链接中提取X、Y坐标?

Python脚本:解析Google Maps链接(含短链接)提取经纬度坐标

需求说明

需要实现一个Python脚本,支持用户输入Google Maps的完整链接或短链接,输出对应的X(经度)、Y(纬度)坐标。例如:

  • 完整链接:https://www.google.com/maps/search/29.996966,+68.748251?entry=tts&g_ep=EgoyMDI0MDUyOC4wKgBIAVAD,可提取出 x=68.748251 y=29.996966
  • 短链接:https://maps.app.goo.gl/wsmXZrYfP8V3ur2RA,需先解析为完整链接再提取坐标

优化后的代码

import requests
from urllib.parse import urlparse, parse_qs

def resolve_short_link(short_link):
    """解析短链接,返回跳转后的完整链接"""
    try:
        response = requests.get(short_link, allow_redirects=True)
        response.raise_for_status()
        return response.url
    except requests.exceptions.RequestException:
        print("解析短链接失败,请检查链接有效性")
        return None

def extract_coordinates(full_link):
    """从完整Google Maps链接中提取经纬度坐标"""
    parsed_url = urlparse(full_link)
    
    # 情况1:链接路径包含/search/经纬度格式
    if parsed_url.path.startswith('/search/'):
        path_part = parsed_url.path.split('/')[2]
        if ',' in path_part:
            lat, lon = path_part.split(',', 1)
            return lat.strip(), lon.strip()
    
    # 情况2:链接查询参数包含q=经纬度格式
    query_params = parse_qs(parsed_url.query)
    q_param = query_params.get('q')
    if q_param and ',' in q_param[0]:
        lat, lon = q_param[0].split(',', 1)
        return lat.strip(), lon.strip()
    
    print("无法从链接中提取坐标")
    return None, None

def get_coordinates(input_link):
    """统一处理输入链接(完整/短链接),返回坐标"""
    # 判断是否为短链接(maps.app.goo.gl域名)
    if input_link.startswith('https://maps.app.goo.gl/'):
        full_link = resolve_short_link(input_link)
        if not full_link:
            return None, None
    else:
        full_link = input_link
    
    return extract_coordinates(full_link)

def main():
    user_input = input("请输入Google Maps链接(完整或短链接):")
    y, x = get_coordinates(user_input)  # y是纬度,x是经度
    
    if x and y:
        print(f"x = {x}")
        print(f"y = {y}")
    else:
        print("未能提取到有效坐标")

if __name__ == "__main__":
    main()

关键改进点

  • 同时支持完整链接与短链接:自动识别短链接并跳转解析为完整链接
  • 适配多种链接格式:既支持路径中包含坐标的/search/经纬度格式,也支持查询参数q=经纬度的格式
  • 错误处理优化:增加了请求异常捕获,提示更清晰的错误信息
  • 坐标对应关系明确:严格按照需求返回X(经度)、Y(纬度),对应链接中先纬度后经度的顺序

内容的提问来源于stack exchange,提问作者saqer.ms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:13:19