私は、私の街のキーワードに関連するすべてのビジネスをgeolocateしようとしています。まず、radarsearch APIを使用してプレイスIDを取得し、後でPlaces APIを使用して各プレイスID(名前やフォーマットされたアドレスなど)。Googleのradarsearch APIの結果
私の最初のアプローチでは、半径22kmの9つの円周上に私の都市を分割し、ビジネスにはならない郊外を避けました。このようにして、約150のビジネスが重複しているため、重複した結果を一旦削除してしまいました。会社の公式ウェブページには245があると主張しているため、この結果は信頼できません。
すべてのビジネスを検索するために、私は半径10kmの周りで私の都市を分割しました。したがって、約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