google places APIを使用すると、リクエストごとに最大20件の結果が得られます。それはなぜそうですか?Google Places API:結果の数
他の方法で結果の数を増やすことはできますか?
google places APIを使用すると、リクエストごとに最大20件の結果が得られます。それはなぜそうですか?Google Places API:結果の数
他の方法で結果の数を増やすことはできますか?
20残念ながら最大です。あなたができることは、異なる半径を持ついくつかのリクエストを作成し、結果をまとめてマージ/フィルタリングすることです。
あなたは一度に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;
}
}