【问题标题】:Get City Name from Reverse Geocoding with latitude and longitude从经纬度反向地理编码中获取城市名称
【发布时间】:2016-02-10 09:02:11
【问题描述】:

http://maps.googleapis.com/maps/api/geocode/xml?latlng=39.952853,32.901470&sensor=false

在这个 xml url 中,我无法从下面解释的区域获取数据。

<long_name>Altınevler Mahallesi</long_name>

我正在使用 asp.net c#。你能帮我解决这个问题吗?

这是我试图从 xml 中获取数据的代码

XmlDocument xdoc = new XmlDocument();
xdoc.Load(
    "http://maps.googleapis.com/maps/api/geocode/xml?latlng=39.952853,32.901470&sensor=false"
    );

XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("entry");

foreach (XmlNode xNode in xNodelst)
{
    label1.Text += "read";
}

【问题讨论】:

  • 能否请您发布您为尝试获取数据而编写的代码?
  • 我当然编辑了我的帖子。
  • 如果把选择行改成XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("result/address_component/long_name");怎么办?
  • 但是有很多 adress_componet 我怎么能得到一个特别的
  • 您能否更具体地说明您期望的结果? XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("result/address_component/long_name[. = 'Altınevler Mahallesi']"); 将返回该 long_name 的两个结果。

标签: c# asp.net google-maps xml-parsing reverse-geocoding


【解决方案1】:

如果有人想知道我的猜测,我解决了我的问题。解决方案如下所示。

谢谢

XmlDocument xDoc = new XmlDocument();
        xDoc.Load("https://maps.googleapis.com/maps/api/geocode/xml?latlng=" +coordinate+"&location_type=ROOFTOP&result_type=street_address&key=YOURAPIKEY");

        XmlNodeList xNodelst = xDoc.GetElementsByTagName("result");
        XmlNode xNode = xNodelst.Item(0);
        string adress = xNode.SelectSingleNode("formatted_address").InnerText;
        string mahalle = xNode.SelectSingleNode("address_component[3]/long_name").InnerText;
        string ilce = xNode.SelectSingleNode("address_component[4]/long_name").InnerText;
        string il = xNode.SelectSingleNode("address_component[5]/long_name").InnerText;

所以你可以为谷歌地图提取任何数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多