C # Получение широты и долготы от Google GeoCoding API - PullRequest
0 голосов
/ 04 декабря 2018

В моем проекте на C # я пытаюсь определить широту и долготу расположения здания.Я использовал этот поток в качестве базового расстояния между адресами и попытался адаптировать его, чтобы получить широту и длину местоположения.На данный момент получение ответа JSON от API - это нормально, оно получает значение, которое я хочу получить из ответа JSON.

Вот мой код на данный момент

string requesturl = url;
string content = fileGetContents(requesturl);
JObject o = JObject.Parse(content);
user.Latitude = (double)o.SelectToken("results[0].geometry[0].location[0].lat");
user.Longitude = (double)o.SelectToken("results[0].geometry[0].location[0].lng");

protected string fileGetContents(string fileName)
    {
        string sContents = string.Empty;
        string me = string.Empty;
        try
        {
            if (fileName.ToLower().IndexOf("https:") > -1)
            {
                System.Net.WebClient wc = new System.Net.WebClient();
                byte[] response = wc.DownloadData(fileName);
                sContents = System.Text.Encoding.ASCII.GetString(response);

            }
            else
            {
                System.IO.StreamReader sr = new System.IO.StreamReader(fileName);
                sContents = sr.ReadToEnd();
                sr.Close();
            }
        }
        catch { sContents = "unable to connect to server "; }
        return sContents;
    }

1 Ответ

0 голосов
/ 04 декабря 2018

Похоже, проблема в том, что вы пытаетесь получить доступ к геометрии и местоположению, как если бы они были списками.Попробуйте это:

user.Latitude = (double)o.SelectToken("results[0].geometry.location.lat");
user.Longitude = (double)o.SelectToken("results[0].geometry.location.lng");
...