【发布时间】:2014-04-16 15:05:49
【问题描述】:
我的问题是在我的本地网络服务器上运行以下函数,所有传递的地址都通过纬度和经度解析。当我在主机上发布时,这些地址中的大多数都返回一个空字符串。 地址参数的格式如下:“Main Street 550, London”
public string GetLongitudeAndLatitude(string address, string sensor)
{
string urlAddress = "http://maps.googleapis.com/maps/api/geocode/xml?address=" + HttpUtility.UrlEncode(address) + "&sensor=" + sensor;
string returnValue = "";
try
{
XmlDocument objXmlDocument = new XmlDocument();
objXmlDocument.Load(urlAddress);
XmlNodeList objXmlNodeList = objXmlDocument.SelectNodes("/GeocodeResponse/result/geometry/location");
foreach (XmlNode objXmlNode in objXmlNodeList)
{
// GET LONGITUDE
returnValue = objXmlNode.ChildNodes.Item(0).InnerText;
// GET LATITUDE
returnValue += "," + objXmlNode.ChildNodes.Item(1).InnerText;
}
}
catch
{
// Process an error action here if needed
}
return returnValue;
}
【问题讨论】:
-
此代码可能出于多种原因返回空字符串。有一个
status节点作为响应的一部分。那没有被检查。可能没有任何location节点。文档Load可能会引发异常。在不知道任何这些信息的情况下,无法给出有用的答案。 -
我还尝试检查状态是否“正常”且没有结果。我当时不明白的是为什么我可以在本地找到坐标。感谢您的快速答复。
标签: c# asp.net visual-studio-2010 google-maps google-maps-api-3