【发布时间】:2011-08-31 10:14:29
【问题描述】:
使用 google places api,每个请求最多可以得到 20 个结果。为什么会这样?
我可以通过任何其他方法增加结果的数量吗??
【问题讨论】:
标签: android
使用 google places api,每个请求最多可以得到 20 个结果。为什么会这样?
我可以通过任何其他方法增加结果的数量吗??
【问题讨论】:
标签: android
不幸的是,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;
}
}
【讨论】: