Google マップ (C#、ASP.NET) で走行距離を取得するために XML リクエストを使用しています。私のサンプル リクエストは次のとおりです。
string strURL = "http://maps.google.com/maps/api/directions/xml?origin=" + Session["UserLat"].ToString() + "," + Session["UserLon"].ToString() + "&destination=" + tmpList[d].X + "," + tmpList[d].Y + "&mode=driving&sensor=false";
List<float> distances = new List<float>();
distances.Clear();
HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(strURL);
//Request.Headers.Add("Man", "GET " + strURL);
HttpWebResponse wResponse = (HttpWebResponse)wRequest.GetResponse();
if (wRequest.HaveResponse)
{
if (wResponse.StatusCode == HttpStatusCode.OK)
{
StreamHandler = new System.IO.StreamReader(wResponse.GetResponseStream());
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));
}
}
}
一部のリクエストは 0 の距離を返すようです。もちろん、コードを実行するたびに異なる結果が得られます。マップ上にいくつかのポイント (約 19 ポイント) があり、それらのほぼ半分が 0 の距離を返します。距離に基づくアイテムですが、距離が0になると何もできません!ループで距離を取得していますが、ここで何が問題になっていますか?