Zipcode的纬度和经度?

时间:2011-10-21 22:35:22

标签: google-maps latitude-longitude

我正在尝试检索给定邮政编码的纬度和经度。

这是我的代码

 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是一个抽象类,它无法实例化。

任何帮助我如何使其代码工作。 谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

问题在于我/我们无法看到您的webRequest实例是如何创建的。 这将有效。

        HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://ws.geonames.org/postalCodeSearch?postalcode=" + Zip + "&maxRows=10&country=" + Country);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();