2011-08-31 18 views
1

google places APIを使用すると、リクエストごとに最大20件の結果が得られます。それはなぜそうですか?Google Places API:結果の数

他の方法で結果の数を増やすことはできますか?

答えて

2

20残念ながら最大です。あなたができることは、異なる半径を持ついくつかのリクエストを作成し、結果をまとめてマージ/フィルタリングすることです。

2

あなたは一度に60個の結果(ページごと20)を取得行うための方法を書くことができ、しかし、すべての結果を得ることに遅延が発生します -

public PlacesList search(double latitude, double longitude, double radius, String types) 
      throws Exception { 

     try { 

      HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
      HttpRequest request = httpRequestFactory 
        .buildGetRequest(new GenericUrl("https://maps.googleapis.com/maps/api/place/search/json?")); 
      request.getUrl().put("key", YOUR_API_KEY); 
      request.getUrl().put("location", latitude + "," + longitude); 
      request.getUrl().put("radius", radius); 
      request.getUrl().put("sensor", "false"); 
      request.getUrl().put("types", types); 

      PlacesList list = request.execute().parseAs(PlacesList.class); 

      if(list.next_page_token!=null || list.next_page_token!=""){ 
       Thread.sleep(4000); 
         /*Since the token can be used after a short time it has been generated*/ 
       request.getUrl().put("pagetoken",list.next_page_token); 
       PlacesList temp = request.execute().parseAs(PlacesList.class); 
       list.results.addAll(temp.results); 

      } 
      return list; 

     } catch (HttpResponseException e) { 
      return null; 
     } 

    } 
関連する問題