谷歌地图API使用纬度和经度获取位置名称

时间:2019-01-28 07:14:29

标签: c# google-maps google-maps-api-3

我正在使用googlemaps api通过用户提供的经纬度来获取位置名称,该位置在用户本地计算机上有效,但问题是在部署应用程序时它不起作用。它给出了空异常,这是我的代码。

public static string GETGoogleAddress(double lat, double longi)
{
    string URL = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + longi+ "&key=AIza*****-Lyb****_********efVUW1o7B****";
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
    try
    {
        WebResponse response = request.GetResponse();
        using (Stream responseStream = response.GetResponseStream())
        {
            StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
            JObject parseJson = JObject.Parse(reader.ReadToEnd());
            var getJsonres2 = parseJson["results"][1];
            var getAddress2 = getJsonres2["formatted_address"];
            string _Address = getAddress2.ToString();
            return _Address;
        }
    }
    catch (WebException ex)
    {
        WebResponse errorResponse = ex.Response;
        using (Stream responseStream = errorResponse.GetResponseStream())
        {
            StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
            String errorText = reader.ReadToEnd();
            // log errorText
        }
        throw;
    }
}

我这样称呼这个实用程序助手

 var _location = UtilityHelper.GeoAddressUtilHelper.GETGoogleAddress(model.Latitude??0, model.Longitude??0);

,它不会在生产中返回任何位置。部署应用程序后,它在本地但不能正常工作的Windows服务器上可以正常工作。

以下是我得到的stackTrace

  在

  Offey.services.UtilityHelper.GeoAddressUtilHelper.GETGoogleAddress(Double   lat,Double longi)

异常类型

  

NullReferenceException

异常消息

  

对象引用未设置为对象的实例。

0 个答案:

没有答案