我有这样的 google 地图短链接: https://maps.app.goo.gl/wsmXZrYfP8V3ur2RA
I want python script to ask user to input google map link , then print X and Y
I user input : https://maps.app.goo.gl/wsmXZrYfP8V3ur2RA
python code will get full link ( https://www.google.com/maps/search/29.996966,+68.748251?entry=tts&g_ep=EgoyMDI0MDUyOC4wKgBIAVAD )then printx= 68.748251y=29.996966
import requestsfrom urllib.parse import urlparse, parse_qsdef get_coordinates(google_map_short_link): # 获取完整的 Google 地图链接 response = requests.get(google_map_short_link) if response.status_code != 200: print("Failed to fetch the full link.") return None # 从响应中提取完整链接 full_link = response.url # 解析 URL 以提取经纬度 parsed_url = urlparse(full_link) query_params = parse_qs(parsed_url.query) coordinates = query_params.get('q') if coordinates: coordinates = coordinates[0].split(',') if len(coordinates) == 2: return coordinates[0], coordinates[1] return None, Nonedef main(): # 询问用户谷歌地图的简短链接 google_map_short_link = input("Please enter the Google Maps short link: ") # 获取坐标 x, y = get_coordinates(google_map_short_link) # 打印坐标 print("x =", x) print("y =", y)if __name__ == "__main__": main()
.
import requests
from urllib.parse import urlparse, parse_qs
def get_coordinates(google_map_short_link):
"""从谷歌地图短链接中获取经纬度坐标。
Args:
google_map_short_link: 谷歌地图短链接.
Returns:
一个元组,包含经度和纬度坐标 (x, y),如果获取失败则返回 (None, None).
"""
try:
# 发送 GET 请求获取完整链接
response = requests.get(google_map_short_link)
response.raise_for_status() # 检查请求是否成功
# 获取重定向后的完整链接
full_link = response.url
# 解析 URL 提取经纬度
parsed_url = urlparse(full_link)
query_params = parse_qs(parsed_url.query)
coordinates = query_params.get('q')
if coordinates:
x, y = map(float, coordinates[0].split(','))
return x, y
else:
return None, None
except requests.exceptions.RequestException as e:
print(f"Error fetching URL: {e}")
return None, None
def main():
"""主函数,获取用户输入并打印坐标。"""
google_map_short_link = input("请输入谷歌地图短链接: ")
x, y = get_coordinates(google_map_short_link)
if x and y:
print("x =", x)
print("y =", y)
else:
print("无法获取坐标。请检查链接是否有效。")
if __name__ == "__main__":
main()
使用方法:
-
将以上代码保存为 Python 文件(例如,
get_coordinates.py
)。 -
在终端中运行该脚本:
python get_coordinates.py
- 脚本会提示输入谷歌地图短链接。
- 输入链接后,脚本会打印出经度 (x) 和纬度 (y) 坐标。
代码说明:
-
get_coordinates(google_map_short_link)
函数:-
使用
requests.get()
函数发送 GET 请求到短链接,获取完整链接。 -
使用
urllib.parse.urlparse()
函数解析完整链接。 -
使用
urllib.parse.parse_qs()
函数解析查询字符串,获取经纬度坐标。 - 返回经纬度坐标。
-
使用
-
main()
函数:- 提示用户输入谷歌地图短链接。
-
调用
get_coordinates()
函数获取坐标。 - 打印坐标。
注意:
-
此代码依赖于
requests
库。 如果尚未安装,请使用pip install requests
进行安装。 - 此代码假设谷歌地图短链接会重定向到包含经纬度坐标的完整链接。 如果谷歌更改了其链接结构,此代码可能无法正常工作。