Je veux développer une application de carte qui affichera les banques près d'un endroit donné.
J'utilise la bibliothèque Places pour rechercher et chaque fois qu'elle renvoie 20 résultats. Que dois-je faire si je veux plus de résultats ?
Je veux développer une application de carte qui affichera les banques près d'un endroit donné.
J'utilise la bibliothèque Places pour rechercher et chaque fois qu'elle renvoie 20 résultats. Que dois-je faire si je veux plus de résultats ?
Voici un exemple de code qui cherchera des résultats supplémentaires
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Web.Script.Serialization;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var url = $"https://maps.googleapis.com/maps/api/place/nearbysearch/json?location={args[0]}&radius={args[1]}&type=restaurant&keyword={args[2]}&key={args[3]}";
dynamic res = null;
var places = new List<PlacesAPIRestaurants>();
using (var client = new HttpClient())
{
while (res == null || HasProperty(res, "next_page_token"))
{
if (res != null && HasProperty(res, "next_page_token"))
{
if (url.Contains("pagetoken"))
url = url.Split(new string[] { "&pagetoken=" }, StringSplitOptions.None)[0];
url += "&pagetoken=" + res["next_page_token"];
}
var response = client.GetStringAsync(url).Result;
JavaScriptSerializer json = new JavaScriptSerializer();
res = json.Deserialize<dynamic>(response);
if (res["status"] == "OK")
{
foreach (var place in res["results"])
{
var name = place["name"];
var rating = HasProperty(place,"rating") ? place["rating"] : null;
var address = place["vicinity"];
places.Add(new PlacesAPIRestaurants
{
Address = address,
Name = name,
Rating = rating
});
}
}
else if (res["status"] == "OVER_QUERY_LIMIT")
{
return;
}
}
}
}
public static bool HasProperty(dynamic obj, string name)
{
try
{
var value = obj[name];
return true;
}
catch (KeyNotFoundException)
{
return false;
}
}
}
}
J'espère que ça vous fera gagner du temps.
Je ne suis pas sûr que tu puisses en avoir plus.
L'API Places renvoie jusqu'à 20 résultats d'établissement.
http://code.google.com/apis/maps/documentation/places/#PlaceSearchResponses
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.