如何在 C#.Net 中实现 Google Place API

How to implement Google Place API in C#.Net

我正在使用 C#.NET 开发 EPOS 系统。在我的项目中,我必须实现一个场景:

  1. 用户将在文本框中输入邮政编码。
  2. 使用 google 个地方 API 的应用程序将 return 城市、街道和城镇分别在 3 个 Tex 框中。 请任何人帮助我如何在 C#.net 中实现这种情况。

我已经在 https://console.cloud.google.com/apis/credentials/key 上创建了 Google 项目并为我的项目生成 Google Place API 密钥。

我在 google 上搜索了很多,但所有示例都是在 asp.net 中实现的,但我需要在 C# Net 中实现。 任何人帮助我。 提前致谢。

I have implemented Some how but i don't know how to read it

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace apidemo
{
    class Program
    {
        String response, result;
         const String apiKey= "My APi kEy";
        static void Main(string[] args)
        {
            getdata("B11 4RA");
            Console.ReadLine();
        }
        static async public void getdata(String code)
        {
            try
            {
                using (var client = new HttpClient())
                {
                   

                    var response = await client.GetStringAsync(String.Format("https://maps.googleapis.com/maps/api/place/autocomplete/json?key="+ apiKey + "&input=" +code));
               
                    Console.WriteLine(response);
                   



                }
            }
            catch (Exception ex) {
                Console.Write(ex.ToString());
            }

          
        }
   

    }
}

Output is this

如果我们查看 documentation 的 Google 位置 API,我们可以看到 JSON 的格式,即对 [=17= 的请求] returns。您可以遍历 json 对象并获取所需的值,如下面的代码片段所示。

JObject objectContainer = response.Value<JObject>("candidates");

foreach (KeyValuePair<string, JToken> tag in objectContainer)
{
    if(tag.key=="formatted_address")
        var address = tag.value;
    if(tag.key=="name")
        var name = tag.value;
}

通过对 Google 地点 API 的简单 HTTP 请求,我们可以使用上面的代码来获取所需的字段。

using (var client = new HttpClient())
{
    var response = await client.GetStringAsync("https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=YOUR_POSTCODE&inputtype=textquery&&fields=photos,formatted_address,name,opening_hours,rating&key=YOUR_API_KEY");
    var result = JsonConvert.DeserializeObject<PlacesApiQueryResponse>(response);
}