Python调用Google Distance Matrix API返回错误地址问题求助
解决Google Distance Matrix API返回错误地址的问题
嘿,我一眼就瞅出你代码里的关键问题了——你在调用distance_matrix的时候,把变量名origins和destinations当成字符串拼接了,而不是用变量本身的实际值!
先看你这段有问题的代码:
origins = ['26.650032', '-81.842073'] destinations = ['26.617167', '-81.860763'] JTC = gmaps.distance_matrix('origins'+", Florida", 'destinations'+", Florida", ...)
这里你传给API的不是经纬度坐标,而是字符串"origins, Florida"和"destinations, Florida",Google API肯定没法解析这种奇怪的“地址”,自然会返回错误的结果。
正确的做法分两种情况:
1. 直接使用经纬度坐标
Google API支持直接接收经纬度对,格式可以是"纬度,经度"的字符串,或者数值元组:
# 方式1:用字符串格式的经纬度 origins = ["26.650032,-81.842073"] destinations = ["26.617167,-81.860763"] # 方式2:用元组传递数值(更推荐,避免字符串拼接错误) origins = [(26.650032, -81.842073)] destinations = [(26.617167, -81.860763)]
2. 给坐标添加州名后缀
如果确实需要给坐标加上佛罗里达州的标识,要用变量的值来拼接,而不是变量名:
# 先把经纬度组合成完整的坐标字符串 origin_coord = f"{origins[0]},{origins[1]}" destination_coord = f"{destinations[0]},{destinations[1]}" # 再拼接州名 origin_full = f"{origin_coord}, Florida" destination_full = f"{destination_coord}, Florida" # 调用API JTC = gmaps.distance_matrix(origin_full, destination_full, mode='driving') # 可按需指定出行模式
额外调试小技巧
- 调用API前先打印参数,确认传递的内容是对的:
print("要发送的起点:", origin_full) print("要发送的终点:", destination_full)
这样能快速发现参数是否变成了奇怪的字符串。
- 查看API返回的状态和错误信息,能帮你定位更多问题:
print("API返回状态:", JTC.get('status')) print("错误详情:", JTC.get('error_message'))
修正参数传递的问题后,API就能正确解析你的坐标/地址,返回准确的距离结果啦!
内容的提问来源于stack exchange,提问作者Jaime Argueta
相关产品推荐
相关产品推荐

