2013-08-23 41 views
0

我一直在用我的应用程序一段时间这个代码来获取经纬度某些地址:C#谷歌地图坐标

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#文本框。我按下按钮并执行此代码。有人知道为什么它不再工作吗?

回答

0

一对夫妇的事情,你可以帮助你缩小问题

  1. 从你的文本框中API地址和位置。直接粘贴在Chrome的网址,看看你得到任何结果

    http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=address_you_are_trying

我很少地址试过,我回来的响应。

  1. 如果一切都很好,那么找出你的c#代码。这可能是你没有解析正确的XML元素。如果你不想来解析XML,你可以在XML参数更改为JSON和desiralize到一个JSON对象来获得属性更容易这样

    http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Ealing