dinkan
dinkan

Reputation: 83

Google Places API : Number of results

With google places api, i get a maximum of 20 results per request. Why is it so?

Can i increase the number of results by any other methods??

Upvotes: 1

Views: 5079

Answers (2)

shreks7
shreks7

Reputation: 442

You can write a method to do get 60 results (20 per page) at a time, however there will be a delay in getting all the results -

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;
        }

    }

Upvotes: 3

Melvin
Melvin

Reputation: 3431

20 is the max unfortunately. what you can do though is make several requests with a different radius and merge/filter the results together.

Upvotes: 3

Related Questions