官方文檔地址:https://lbs.qq.com/webservice_v1/guide-distance.html
代碼:

1 /// <summary> 2 /// 獲取距離最近的點的經緯度 3 /// </summary> 4 /// <param name="from">起點坐標以英文逗號分隔,緯度在前,經度在后(緯度,經度;例:39.071510,117.190091)</param> 5 /// <param name="to">終點坐標單個坐標以英文逗號分隔,坐標之間以英文分號分隔(例:39.071510,117.190091;40.007632,116.389160;39.840177,116.463318)</param> 6 /// <param name="mode">計算方式:driving(駕車)、walking(步行)默認:walking</param> 7 /// <returns></returns> 8 public static Distance GetShortestDistance(string from = "", string to = "", string mode = "walking") 9 { 10 if (string.IsNullOrEmpty(from) || string.IsNullOrEmpty(to)) 11 { 12 return null; 13 } 14 var url = new Config().DistanceUrl; 15 var Data = new SortedDictionary<string, string>(); 16 Data.Add("mode", mode); 17 Data.Add("from", from); 18 Data.Add("to", to); 19 Data.Add("key", new Config().TencentMapKey);//new Config().TencentMapKey,騰訊開發平台分配的key 20 var dataStr = string.Empty; 21 foreach (var item in Data) 22 { 23 dataStr += item.Key + "=" + item.Value + "&"; 24 } 25 var postData = dataStr.Substring(0, dataStr.Length - 1); 26 var signData = postData + new Config().TencentMapSN;//new Config().TencentMapSN,騰訊開放平台分配的驗簽值,, 27 var sign = DoEncrypt.MD5("/ws/distance/v1/?" + signData);//md5加密 28 postData += "&sig=" + sign; 29 var result = DoWebRequest.SendRequest_Get(url, postData); 30 var postResult = DoWebRequest.SendRequest_Get(url, postData); 31 if (!string.IsNullOrEmpty(postResult)) 32 { 33 return postResult.ToObjectFromJson<Distance>(); 34 } 35 return null; 36 }
根據API返回類容定義的解析對象:

1 public class Distance 2 { 3 public int status { get; set; }//返回狀態碼 4 public string message { get; set; }//狀態碼說明 5 public object result { get; set; }//返回內容 6 }