Python 谷歌';s radarsearch API结果

Python 谷歌';s radarsearch API结果,python,google-api,Python,Google Api,我正在尝试地理定位我所在城市中与关键字相关的所有业务,首先使用radarsearch API检索地点ID,然后使用Places API获取每个地点ID的更多信息(例如名称或格式化地址) 在我的第一个方法中,我将我的城市划分为9个环线,每个环线的半径为22公里,并避开农村地区,那里本来不应该有商业活动。通过这种方式,我获得了(由于周长重叠,删除了重复的结果)大约150项业务。这一结果不可靠,因为该公司的官方网页声称有245个 为了取回所有的生意,我把我的城市分成了半径10公里的区域。因此,我用大约

我正在尝试地理定位我所在城市中与关键字相关的所有业务,首先使用radarsearch API检索地点ID,然后使用Places API获取每个地点ID的更多信息(例如名称或格式化地址)

在我的第一个方法中,我将我的城市划分为9个环线,每个环线的半径为22公里,并避开农村地区,那里本来不应该有商业活动。通过这种方式,我获得了(由于周长重叠,删除了重复的结果)大约150项业务。这一结果不可靠,因为该公司的官方网页声称有245个

为了取回所有的生意,我把我的城市分成了半径10公里的区域。因此,我用大约50对坐标填充城市,包括现在所有的区域,包括农村和非农村。现在,令人惊讶的是,我只获得了81项业务!这怎么可能呢

我将所有信息存储在单独的字典中,我注意到每个字典的数据量随着半径的增加而增加,并且总是相同的(对于固定半径)

现在,除了上一个问题,还有没有办法限制每个请求产生的结果量

我使用的代码如下所示:

dict1 = {}
radius=20000 
keyword='keyworkd'
key=YOUR_API_KEY
url_base="https://maps.googleapis.com/maps/api/place/radarsearch/json?"
list_dicts = []
for i,(lo, la) in enumerate(zip(lon_txt,lat_txt)):
    url=url_base+'location='+str(lo)+','+str(la)+'&radius='+str(radius)+'&keyword='+keyword+'&key='+key
    response = urllib2.urlopen(url)
    table = json.load(response)
    if table['status']=='OK':
        for j,line in enumerate(table['results']):
            temp = {j : line['place_id']}
            dict1.update(temp)
        list_dicts.append(dict1)
    else:
        pass

最后我设法解决了这个问题

问题是dict初始化必须在每个循环迭代中完成。现在它存储了所有的信息,我从一开始就检索到了我想要的东西

dict1 = {}
radius=20000 
keyword='keyworkd'
key=YOUR_API_KEY
url_base="https://maps.googleapis.com/maps/api/place/radarsearch/json?"
list_dicts = []
for i,(lo, la) in enumerate(zip(lon_txt,lat_txt)):
    url=url_base+'location='+str(lo)+','+str(la)+'&radius='+str(radius)+'&keyword='+keyword+'&key='+key
    response = urllib2.urlopen(url)
    table = json.load(response)
    if table['status']=='OK':
        for j,line in enumerate(table['results']):
            temp = {j : line['place_id']}
            dict1.update(temp)
        list_dicts.append(dict1)
        dict1 = {}
    else:
        pass