Comment obtenir 20 + résultat de L'API Googlesplaces?

je développe une application dans laquelle je reçois la liste des ATM près de l'utilisateur. Pour cela, J'utilise Google Places API, mais chaque fois qu'il retourne 20 résultat seulement. Je veux obtenir plus de résultats. Dans la doc de l'API, il est mentionné qu'il sera de retour 20 résultat, mais je voudrais savoir qu'est-ce que je peux obtenir des données plus ou j'ai créer ma base de données? Aussi ce que j'ai trouvé dans L'API est qu'il n'a pas tous les guichets automatiques pour L'Inde. L'information n'est pas exacte pour certains de l'endroit. Alors, s'il vous plaît, suggérez-moi une idée pour que j'utilise ma propre base de données ou pas? Je sais que je peux enregistrer des endroits dans Google Places mais là le problème est que chaque fois qu'il retourne seulement 20 résultat; si de toute façon ce problème est résolu, alors il sera grand d'utiliser L'API lieux..

s'il vous plaît, aidez-moi.....

14
demandé sur Scorpion 2012-03-08 11:35:20

6 réponses

selon la documentation: http://code.google.com/intl/en/apis/maps/documentation/places/#PlaceSearchResponses

EDIT: Place API supporte maintenant la pagination de jusqu'à 60 résultats. Voir ci-dessous pour plus de détails.

l'API endroits retournera jusqu'à 20 établissements par requête; cependant, chaque recherche peut retourner jusqu'à 60 résultats, répartis sur trois pages. Si votre recherche retournera plus de 20, puis la réponse de recherche inclura un paramètre supplémentaire-next_page_token. Passez la valeur de next_page_token au paramètre page_token d'une nouvelle recherche de place pour voir la série suivante de 20 Résultats.

il y a aussi des conditions de service strictes qui spécifient que vous ne pouvez pas pré-récupérer, mettre en Cache ou stocker du contenu à moins que ce ne soit l'Identificateur de contenu ou la clé que vous êtes autorisé à stocker, c.-à-d. un token de référence à partir d'une recherche par endroits.: http://code.google.com/intl/en/apis/maps/terms.html#section_10_1_3

au sujet de l'impossibilité de trouver des GAB en Inde. Tous les lieux sont classés sous le type establishment jusqu'à ce que Google ait suffisamment de métadonnées sur un lieu pour le catégoriser sous des types de lieux plus spécifiques comme ATM , cafe , bar etc. Un travail autour qui peut trouver plus de résultats est d'utiliser le paramètre keyword dans votre demande avec quelque chose comme 'ATM', 'bank' ou "finance" comme valeur. Selon la documentation: http://code.google.com/apis/maps/documentation/places / Le paramètre keyword est comparé à tous les champs disponibles, y compris, mais sans s'y limiter, au nom, au type et à l'adresse, ainsi qu'aux avis des clients et autres contenus tiers.

13
répondu Chris Green 2012-06-29 02:12:58

Google API " récupère le 20 résultat dans une page supposons que vous voulez utiliser la page suivante résultat 20 puis nous utilisons le next_page_token de google première page xml en conséquence.

1) https://maps.googleapis.com/maps/api/place/search/xml?location=Enter latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=Enter Google_Map_key

dans la deuxième étape, vous utilisez la première page next_page_token data

2) https://maps.googleapis.com/maps/api/place/search/xml?location=Enter Latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=enter google_map_key &pagetoken="Enter the first page token Value"

15
répondu Rushabh 2015-12-10 13:01:08

vous pouvez le faire en utilisant Google API JAVA Client - voici un exemple en utilisant le client java pour obtenir tous les 60 résultats.

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

                if(temp.next_page_token!=null||temp.next_page_token!=""){
                    Thread.sleep(4000);
                    request.getUrl().put("pagetoken",temp.next_page_token);
                    PlacesList tempList =  request.execute().parseAs(PlacesList.class);
                    list.results.addAll(tempList.results);
              }

            }
            return list;

        } catch (HttpResponseException e) {
            return null;
        }

    }
6
répondu shreks7 2012-10-10 17:57:16

sur la page Google places: https://developers.google.com/places/documentation/search Sous 'demandes de recherche Radar', il est indiqué que l'utilisation de: https://maps.googleapis.com/maps/api/place/radarsearch/output?parameters vous obtenez 200 résultats en utilisant cet appel, mais notez que chaque appel utilise 5 requêtes contre votre quota.

1
répondu nickelastic 2013-05-15 07:28:04

veuillez essayer l'url ci-dessous avec les paramètres ci-dessous

URL = " http://www.google.com/maps?q=restaurant&ie=UTF8&hl=en&sll=0.000000,0.000000&sspn=0.000000,0.000000&vps=3&sa=N&start=20

où start = nombre de résultats disent par exemple commencer à 0 ou 10 0r 20 -

0
répondu Gauging 2013-08-01 09:54:59

vous pouvez obtenir plus de résultats de la page suivante token:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=[your search key word]&location=latitude,longitude&radius=value&key=[your API key]&next_page_token=next_page_token value
0
répondu Manohar Chowdary Vanka 2016-05-24 14:27:31