2017-11-09 9 views
0

私のDjangoプロジェクトでは、最近の都市をマークするようにしました。このGoogle Places APIではマップを使用してオートコンプリートを使用します。GoogleプレイスAPIで複数のプレイス名を取得するにはどうすればよいですか?

私はGoogleプレイスAPI T & Cで動作するように把握することはできません複数のユースケースを持っており、これはその一つである:

ユーザーのフィルタがあります。各ユーザーは、最後に訪問したを選択しました(したがって、私はplace_idを保存できます)。

ユーザが100人のユーザをフィルタリングすると、そのユーザのカードが結果に1つずつ表示されます。カードには、ユーザーが最後に訪問した場所が含まれている必要があります。

だから私は100の場所(都市)で100枚のカードを表示する必要があります。

私はplace_idさんの場合、どうすればいいですか? Google Places APIに100の詳細要求を送信して、各都市の名前を取得する必要がありますか?

def user_filter(request): 
    filtered_users = .... 
    for user in filtered_users: 
     api_result = request.get('https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJN1t_tDeuEmsRUsoyG83frY4&key=MY_API_KEY') 
     recent_city_name = parse_from_result(api_result) 
    .... 
    return render(request,....) 

これは、理論的には機能するはずですが、時間がかかり、API要求が浪費されます。それを行う良い方法はありますか?

バルクリクエストオプションが見つかりませんでした。

答えて

1

Google Maps APIは一括操作をサポートしておらず、数百のリクエストを送信することは確かに時間がかかります。

私はあなたが

ないキャッシュやストレージを読み取っサービス規約のパラ​​グラフ10.5(D)を使用することができると信じています。は、ネットワークレイテンシのためにMaps API実装のパフォーマンスを向上させる目的のみで限られた量のコンテンツを保存することができる点を除いて、サービスの外部で使用されるコンテンツのプリフェッチ、キャッシュ、インデックス作成または保存は行いません(としない正確にトラッキング使用からGoogleのを防止するために)、およびのみ、記憶場合:

  • が(30以上の暦日とない場合)一時的なものです。
  • は安全です。
  • は、コンテンツまたはサービスのいかなる部分も操作または集約しません。
  • は、帰属を何ら変更しません。

https://developers.google.com/maps/terms?#section_10_5

私はあなたが私が太字でマークされたテキストに準拠している、と信じています。あなたの目的はアプリケーションのパフォーマンスを向上させることで、場所IDと都市名に関連するハッシュマップを一時的に保存し、30日間ごとに一時的なストレージを更新して利用規約に準拠させることができます。

こちらがお役に立てば幸いです。

関連する問題