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.....
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.
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"
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;
}
}
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.
veuillez essayer l'url ci-dessous avec les paramètres ci-dessous
où start = nombre de résultats disent par exemple commencer à 0 ou 10 0r 20 -
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