c#谷歌地图坐标
本文关键字:坐标 谷歌地图 | 更新日期: 2023-09-27 18:28:50
我在应用程序中使用此代码获取某些地址的纬度和经度已经有一段时间了:
private string geoCode(string query)
{
WebRequest request = WebRequest.Create("http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address="
+ HttpUtility.UrlEncode(query));
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
XDocument document = XDocument.Load(new StreamReader(stream));
XElement longitudeElement = document.Descendants("lng").FirstOrDefault();
XElement latitudeElement = document.Descendants("lat").FirstOrDefault();
if (longitudeElement != null && latitudeElement != null)
{
return latitudeElement.Value.ToString() + ", " + longitudeElement.Value.ToString();
}
}
}
return null;
}
它一直工作到现在。现在,当我启动程序时,它不会返回任何内容,我尝试了多个不同的查询,结果仍然返回null。
变量查询包含我在windows窗体c#文本框中写入的地址。我按下按钮,这个代码就会执行。有人知道为什么它不起作用了吗?
有几件事可以帮助您缩小问题的范围
-
从文本框中获取api地址和位置。直接在chrome中粘贴url,看看你是否得到任何结果
http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=address_you_are_trying
我试着用很少的地址,但得到了回复。
-
如果在这一点上一切都很好,那么就计算出你的c代码。可能是您没有解析正确的xml元素。如果您不想解析xml,可以将xml参数更改为JSON,并将其设计为JSON对象,以便更容易地获得类似的属性
http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Ealing