C# 将地址转换为经度和纬度时,对象引用未设置为对象的实例
我试图用这个代码把地址转换成经度和纬度,但我遇到了如下异常 对象引用未设置为对象的实例C# 将地址转换为经度和纬度时,对象引用未设置为对象的实例,c#,google-maps,C#,Google Maps,我试图用这个代码把地址转换成经度和纬度,但我遇到了如下异常 对象引用未设置为对象的实例 System.NullReferenceException:Object reference not set to an instance of an object 在代码中 var address = "123 something st, somewhere"; var requestUri = string.Format("http://maps.googleapis.com/maps/api/geoc
System.NullReferenceException:Object reference not set to an instance of an object
在代码中
var address = "123 something st, somewhere";
var requestUri = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false", Uri.EscapeDataString(address));
var request = WebRequest.Create(requestUri);
var response = request.GetResponse();
var xdoc = XDocument.Load(response.GetResponseStream());
var result = xdoc.Element("GeocodeResponse").Element("result");
var locationElement = result.Element("geometry").Element("location");
var lat = locationElement.Element("lat");
var lng = locationElement.Element("lng");
Response.Write(lat);
Response.Write(lng);
排队
var locationElement = result.Element("geometry").Element("location");
有人请帮帮我。看起来您的result或result.Element(“几何体”)为空。请在调试器模式下检查它问题是您正在使用假地址来测试 我将您的requestUrl和地址(URLSeived)插入Chrome,并得到以下响应:
<GeocodeResponse>
<status>ZERO_RESULTS</status>
</GeocodeResponse>
兄弟,我正在做一个需要用c语言开发网站的项目。我能得到你的帮助吗?请你提供任何联系方式,比如邮件id或fb。真的需要帮助,兄弟,我可以帮你,但不会便宜:)这是个玩笑。我是说如果你在一个项目上需要那么多的帮助,没有人会免费去做。我建议你读一些C#books来学习基础知识,当你遇到困难时,继续在这里提问。祝你好运,伙计。不要忘记将对您帮助最大的答案标记为已接受的答案(答案分数下的复选标记图标):)
<GeocodeResponse>
<status>OK</status>
<result>...</result>
</GeocodeResponse>
var xdoc = XDocument.Load(response.GetResponseStream());
var status = xdoc.Root.Element("status").Value;
switch (status)
{
case "ZERO_RESULTS":
// oops! no location found!
Response.Write("That address does not exist");
break;
case "OK":
var result = xdoc.Element("GeocodeResponse").Element("result");
var locationElement = result.Element("geometry").Element("location");
var lat = locationElement.Element("lat");
var lng = locationElement.Element("lng");
Response.Write(lat);
Response.Write(lng);
break;
default:
// handle other status
break;
}