1 /// <summary> 2 /// returns driving distance in kilometers 3 /// </summary> 4 /// <param name="origin"></param> 5 /// <param name="destination"></param> 6 /// <returns></returns> 7 public static double GetDrivingDistanceInKilometers(string origin, string destination) 8 { 9 string url = @"http://maps.googleapis.com/maps/api/distancematrix/xml?origins=" + 10 origin + "&destinations=" + destination + 11 "&mode=driving&sensor=false&language=en-EN&units=imperial"; 12 13 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 14 WebResponse response = request.GetResponse(); 15 Stream dataStream = response.GetResponseStream(); 16 StreamReader sreader = new StreamReader(dataStream); 17 string responsereader = sreader.ReadToEnd(); 18 response.Close(); 19 20 XmlDocument xmldoc = new XmlDocument(); 21 xmldoc.LoadXml(responsereader); 22 23 24 if (xmldoc.GetElementsByTagName("status")[0].ChildNodes[0].InnerText == "OK") 25 { 26 XmlNodeList distance = xmldoc.GetElementsByTagName("distance"); 27 var miledistance = Convert.ToDouble(distance[0].ChildNodes[1].InnerText.Replace(" mi", "")); 28 var kmdistance = (miledistance * 1.609344).toFixed(1); 29 return kmdistance; 30 } 31 32 return 0; 33 }