为什么googlemapsapi的python代码突然无法工作

2024-10-17 06:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

代码以前可以工作,但我发现它不能工作最近。请看我的代码如下

def signal_distance(lat1,lng1,lat2,lng2):
    import simplejson, urllib
    orig_coord =lat1,lng1 
    dest_coord = lat2,lng2 
    #API request
    url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=transit&language=zh-TW&key=AIzaSyBlwZDhGYNTrxXiQblz20v3poJTA7zTVho".format(str(orig_coord),str(dest_coord))

    result = simplejson.load(urllib.urlopen(url))
    print result
signal_distance(25.082969,121.5549714,24.9988582,121.5788795)

Tags: 代码urlsignalurllibdestdistancemapssimplejson
1条回答
网友
1楼 · 发布于 2024-10-17 06:28:18

似乎生成signal_distance函数的距离矩阵API请求无效,因为它包含originsdestinations参数的括号。你知道吗

指定的示例返回meNOT_FOUND元素级状态代码:

indicates that the origin and/or destination of this pairing could not be geocoded

解决方案是替换以下请求:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=(<latOrig>,<lngOrig>)&destinations=(<latDest>,<lngDest>)&mode=transit&language=<lang>&key=<Key> 

https://maps.googleapis.com/maps/api/distancematrix/json?origins=<latOrig>,<lngOrig>&destinations=<latDest>,<lngDest>&mode=transit&language=<lang>&key=<Key>

修改示例

def signal_distance(lat1,lng1,lat2,lng2):
    import simplejson, urllib
    orig_coord = lat1,lng1 
    dest_coord =  lat2,lng2
    orig_coord_str = ' ,'.join(map(str, orig_coord)) 
    dest_coord_str = ' ,'.join(map(str, dest_coord)) 
    #API request
    url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins={0}&destinations={1}&mode=transit&language=zh-TW&key=AIzaSyBlwZDhGYNTrxXiQblz20v3poJTA7zTVho".format(orig_coord_str,dest_coord_str)
    result = simplejson.load(urllib.urlopen(url))
    print result

相关问题 更多 >