Je développe une application dans laquelle je reçois la liste des distributeurs automatiques de billets à proximité de l'utilisateur. Pour cela, j'utilise l'API Google Places, mais chaque fois, il ne renvoie que 20 résultats. Je veux obtenir plus de résultats. Dans le document API, il est mentionné que le résultat sera 20, mais j'aimerais savoir s'il y a un moyen d'obtenir plus de données ou de créer ma propre base de données à cette fin. Ce que j’ai trouvé dans l’API, c’est qu’il n’a pas tous les guichets automatiques pour l’Inde. L'information est également inexacte pour une partie de l'emplacement. Alors s'il vous plaît me suggérer une idée pour que je devrais utiliser ma propre base de données ou non? Je sais que je peux enregistrer des lieux dans Google Places, mais le problème est que, chaque fois, il ne renvoie que 20 résultats; si de toute façon ce problème est résolu, il sera intéressant d'utiliser l'API Places.
S'il vous plaît, aidez-moi gentiment .....
Selon la documentation: http://code.google.com/intl/fr/apis/maps/documentation/places/#PlaceSearchResponses
EDIT: L'API Placement prend désormais en charge la pagination d'un maximum de 60 résultats. Voir ci-dessous pour plus de détails.
L'API Lieux renverra jusqu'à 20 établissements par requête. Cependant, chaque recherche peut renvoyer jusqu'à 60 résultats, répartis sur trois pages. Si votre recherche renvoie plus de 20, la réponse à la 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 lieu pour afficher la prochaine série de 20 résultats.
Il existe également des conditions de service strictes qui spécifient que vous ne pouvez pas pré-extraire, mettre en cache ou stocker du contenu, sauf s'il s'agit de l'identificateur de contenu ou de la clé que vous êtes autorisé à stocker, c'est-à-dire un jeton de référence provenant d'une recherche d'emplacements: http: // code.google.com/intl/fr/apis/maps/terms.html#section_10_1_3
En ce qui concerne l'impossibilité de trouver des distributeurs automatiques de billets en Inde. Tous les espaces sont classés sous le type __nom_variable__ jusqu'à ce que Google dispose de suffisamment de métadonnées sur un emplacement pour le catégoriser sous des types d'emplacement plus spécifiques, tels que establishment
, ATM
, cafe
etc. Un travail permettant de trouver plus de résultats consiste à utiliser le paramètre bar
, keyword
, etc. quelque chose comme «ATM», «banque» 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, le nom, type, adresse, ainsi que les avis des clients et autres contenus tiers.
Google API récupère le 20 résultat dans une page si vous voulez utiliser le résultat de la page suivante 20, nous utilisons ensuite le next_page_token de google première page xml Par conséquent.
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
à la deuxième étape, vous utilisez les données de la première page next_page_token
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"
Pour ce faire, utilisez le client Java de l'API Google. Voici un exemple d'utilisation du client Java pour obtenir 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 des emplacements de Google sur: https://developers.google.com/places/documentation/search Sous "Requêtes de recherche Radar", vous indiquez que: https: //maps.googleapis. com/maps/api/place/radarsearch/output? paramètres vous obtenez 200 résultats en utilisant cet appel, mais notez que chaque appel utilise 5 demandes par rapport à votre quota.
Vous pouvez obtenir plus de résultats à partir de la page suivante:
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
Veuillez essayer ci-dessous url avec les paramètres ci-dessous
Où début = Nombre de résultats, par exemple, commencez par 0 ou 10 0r 20 -