关于Google Places API

问题描述:

我想知道的是使用Google Places API.基本上我想创建一个像www.zomato.com这样的网站

What I want to know is that using Google places API. Basically I want to create a site like www.zomato.com

1)我可以像我的Google+商户页面一样显示所有餐厅的清单及其个人详细信息以及我所在城市的所有详细信息吗?

1) Can I show listing of all restaurants and their individual details with all the details in my city just like Google+ business page?

2)可以在C#.net上使用此API吗?

2) Is is possible to use this API with C#.net?

3)Google将为此收取多少费用?

3) How much Google will charge for this?

如果我们查看 json2csharp ,我们可以轻松生成用于响应Google Places查询的C#模型.

If we look at the documentation for the Google Places API, we can see the format of the JSON that a request to the API returns. By using json2csharp, we can then easily generate a C# model for the response to a Google Places query.

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 .

With a simple HTTP request to the Google Places API, we can then deserialize the query results using 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);
}