【问题标题】:Issue getting latitude and longitude of a given address using google api使用google api获取给定地址的纬度和经度问题
【发布时间】: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


【解决方案1】:

您正在为每次迭代重置 returnValue。更改代码返回所有返回的经纬度,得到完整的集合和比较。

foreach (XmlNode objXmlNode in objXmlNodeList)
{
    // GET LONGITUDE 
    returnValue += "\r\n" + objXmlNode.ChildNodes.Item(0).InnerText;

    // GET LATITUDE 
    returnValue += "," + objXmlNode.ChildNodes.Item(1).InnerText;
}

同时从本地计算机和服务器浏览到 GoogleMaps url 并检查是否返回了相同的 XML 内容?服务器也可能没有互联网连接。

http://maps.googleapis.com/maps/api/geocode/xml?address=Main%20Street%20550,%20London&sensor=false

【讨论】:

  • 我做了,结果是一样的。在服务器上我可以看到相同的本地 xml(已加载坐标我无法在 xml 中检索它)。
【解决方案2】:

我尝试了其他方法,但服务器上的问题仍然存在,试图反序列化属性。 捕获的错误是:“索引超出了数组的范围。” 在本地每个都可以...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2014-01-21
    • 2018-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多