我想知道的是使用 Google Places API。基本上我想创建一个像 www.zomato.com 这样的网站
1) 我可以像 Google+ 企业页面一样显示所有餐厅的列表及其个人详细信息以及我所在城市的所有详细信息吗?
2) 是否可以将此 API 与 C#.net 一起使用?
3) 谷歌会为此收取多少费用?
如果我们查看Google Places API 的文档,我们可以看到对 API 的请求返回的 JSON 格式。通过使用json2csharp,我们可以轻松地生成 C# 模型来响应 Google Places 查询。
public class Location
{
public double lat { get; set; }
public double lng { get; set; }
}
public class Geometry
{
public Location location { get; set; }
}
public class OpeningHours
{
public bool open_now { get; set; }
public List<object> weekday_text { get; set; }
}
public class Photo
{
public int height { get; set; }
public List<string> html_attributions { get; set; }
public string photo_reference { get; set; }
public int width { get; set; }
}
public class Result
{
public Geometry geometry { get; set; }
public string icon { get; set; }
public string id { get; set; }
public string name { get; set; }
public OpeningHours opening_hours { get; set; }
public List<Photo> photos { get; set; }
public string place_id { get; set; }
public double rating { get; set; }
public string reference { get; set; }
public string scope { get; set; }
public List<string> types { get; set; }
public string vicinity { get; set; }
}
public class PlacesApiQueryResponse
{
public List<object> html_attributions { get; set; }
public List<Result> results { get; set; }
public string status { get; set; }
}
通过对 Google Places API 的简单 HTTP 请求,我们可以使用Json.NET反序列化查询结果。
using (var client = new HttpClient())
{
var response = await client.GetStringAsync(string.Format("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location={0},{1}&radius=500&type=bar&key=YourAPIKey", latitude, longitude));
var result = JsonConvert.DeserializeObject<PlacesApiQueryResponse>(response);
}