我正在尝试检索给定邮政编码的纬度和经度。
这是我的代码
public ActionResult GoogleMap(string address, string Zip)
{
string Country = "US";
int CustomerID = Convert.ToInt32(Session["CustomerID"]);
string DefaultLocation = PrescriberModel.GetDefaultLocation((long)CustomerID).Address.ToString();
ViewBag.PL = address;
ViewBag.DF = DefaultLocation;
string Lat = "";
string Lon = "";
string PostUrl = "http://ws.geonames.org/postalCodeSearch?postalcode=" + Zip + "&maxRows=10&country=" + Country;
// WebRequest webRequest= null;
WebResponse webResponse = webRequest.GetResponse();
if (webResponse == null)
{ }
else
{
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
string Result = sr.ReadToEnd().Trim();
if (Result != "")
{
// Load the response into an XML doc
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(Result);
// Navigate to latitude node
XmlNodeList name = xdoc.GetElementsByTagName("lat");
if (name.Count > 0)
{
Lat = name[0].InnerText;
}
// Navigate to longitude node
name = xdoc.GetElementsByTagName("lng");
if (name.Count > 0)
{
Lon = name[0].InnerText;
}
}
}
ViewBag.Lat = Lat;
ViewBag.Lng = Lon;
return PartialView("_GoogleMap");
}
我从here
中选择了此代码但是这对我来说是错误的 webRequest.GetResponse(); 我注意到在那个示例中,WebRequest没有实例化,更多的是WebRequest是一个抽象类,它无法实例化。
任何帮助我如何使其代码工作。 谢谢你的时间。
答案 0 :(得分:0)
问题在于我/我们无法看到您的webRequest
实例是如何创建的。
这将有效。
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://ws.geonames.org/postalCodeSearch?postalcode=" + Zip + "&maxRows=10&country=" + Country);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();