C# 調用騰訊地圖WebService API獲取距離(一對多)


官方文檔地址: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         }
View Code

根據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         }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM