使用谷歌距离矩阵驾驶距离

时间:2012-11-09 10:29:18

标签: api matrix

根据这篇谷歌文章https://developers.google.com/maps/documentation/distancematrix/ 我试图找出两个或更多地点之间的行车距离,

所以我最初有两个邮政编码,分别是M145AR(mancester)和NE65HL(Newcastle on type)

这是我的帖子网址

http://maps.googleapis.com/maps/api/directions/xml?origin=M145AR&destination=NE65HL&sensor=false&mode=driving

当我看到我收到的xml回复时,我无法找到任何方法来获得我的曼彻斯特邮报到纽卡斯尔之间的驾驶距离泰恩尼邮政编码

有人可以让我知道我的帖子网址有什么问题吗?

请参阅我用于此

的下面的代码

string strURL =“http://maps.google.com/maps/api/directions/xml?origin=53.452824,-2.220085&destination=54.981049,-1.580597&mode=driving&sensor=false”;                 列出距离=新列表();

            distances.Clear();
            HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(strURL);

            HttpWebResponse wResponse = (HttpWebResponse)wRequest.GetResponse();
            if (wRequest.HaveResponse)
            {
                if (wResponse.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader StreamHandler = new System.IO.StreamReader(wResponse.GetResponseStream());
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(StreamHandler.ReadToEnd());
                    Response.Write(xmlDoc.GetElementsByTagName("distance").Count.ToString() + ",");
                    for (int w = 0; w < xmlDoc.GetElementsByTagName("distance").Count; w++)
                    {
                        distances.Add(float.Parse(xmlDoc.GetElementsByTagName("distance")[w].ChildNodes[0].InnerText));                            
                    }
                }

                string aa = string.Empty;
            }

当我检查距离列表时,我得到了下面的数组 数= 27

[0]: 106.0
[1]: 53.0
[2]: 457.0
[3]: 2470.0
[4]: 2106.0
[5]: 805.0
[6]: 1211.0
[7]: 6349.0
[8]: 660.0
[9]: 1226.0
[10]: 59693.0
[11]: 19597.0
[12]: 60784.0
[13]: 16839.0
[14]: 54486.0
[15]: 890.0
[16]: 475.0
[17]: 5702.0
[18]: 1388.0
[19]: 406.0
[20]: 161.0
[21]: 1405.0
[22]: 605.0
[23]: 489.0
[24]: 34.0
[25]: 72.0
[26]: 238469.0

所以我不知道从曼彻斯特到纽卡斯尔的真正驾驶距离是多少。 根据谷歌对曼彻斯特和纽卡斯尔之间的驾驶距离的粗略估计是:148英里

我不确定如何从google xml响应中获取此值, 任何帮助将不胜感激 。

问候 kksfdo

1 个答案:

答案 0 :(得分:0)

如果您想在驾驶时仅计算行驶距离但不计算每一步的距离,则可以选择使用距离矩阵。

如果您更改了网址 http://maps.google.com/maps/api/directions/xml?origin=53.452824,-2.220085&destination=54.981049,-1.580597&mode=driving&sensor=false

到网址http://maps.google.com/maps/api/distancematrix/xml?origin=53.452824,-2.220085&destination=54.981049,-1.580597&mode=driving&sensor=false

您将获得总行程的距离和持续时间,但不会获得前往目的地的每一步的距离。

这是一个非常古老的问题,但由于没有答案,我试图提供帮助。任何建议都表示赞赏。