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

 

转载于:https://www.cnblogs.com/Aotum/p/10248676.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值