/// <summary> /// 批量计算多个起点到一个终点的距离 /// </summary> /// <param name="orignLocation">起点,多个起点用|分隔</param> /// <param name="destination">终点</param> /// <param name="key"></param> /// <param name="sk"></param> /// <param name="type">计算的方式,0:直线距离;1:驾车距离</param> /// <returns></returns> public static List <string> CalcGroupDistance(string orignLocation, string destination, string key, string sk, string type = "0") { string url = "https://restapi.amap.com/v3/distance"; string sign = AKSNCaculater.GDCaculateSN(sk, new Dictionary <string, string>() { { "destination", destination }, { "key", key }, { "origins", orignLocation }, { "type", type } }); string jsonResult = HTTPClientHelper.GetResponseByGet(new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("destination", destination), new KeyValuePair <string, string>("key", key), new KeyValuePair <string, string>("origins", orignLocation), new KeyValuePair <string, string>("type", type), new KeyValuePair <string, string>("sig", sign), }, url); //解析JSON JObject jo = (JObject)JsonConvert.DeserializeObject(jsonResult); var code = jo.Properties().Where(p => p.Name == "status").Select(p => p.Value.ToString()).FirstOrDefault(); //请求成功 if (code == "1") { var distances = new List <string>(); string value = jo.Properties().Where(p => p.Name == "results").Select(p => p.Value.ToString()).FirstOrDefault(); JArray ja = (JArray)JsonConvert.DeserializeObject(value); foreach (var item in ja) { distances.Add(item["distance"].ToString()); } return(distances); } else //请求失败 { return(null); } }
/// <summary> /// 根据地名查询经纬度 /// </summary> /// <param name="url">api地址</param> /// <param name="key">申请的appKey</param> /// <param name="sk">私钥</param> /// <param name="address">查询的地址(省市区+具体地址)</param> /// <param name="city">查询的城市</param> /// <returns></returns> public static string QueryGDLocationByName(string url, string key, string sk, string address, string city) { //计算数字签名 string sign = AKSNCaculater.GDCaculateSN(sk, new Dictionary <string, string>() { { "address", address }, { "city", city }, { "key", key } }); //发送请求 string jsonResult = HTTPClientHelper.GetResponseByGet(new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("address", address), new KeyValuePair <string, string>("city", city), new KeyValuePair <string, string>("key", key), new KeyValuePair <string, string>("sig", sign), }, url); //解析JSON JObject jo = (JObject)JsonConvert.DeserializeObject(jsonResult); //JObject jo = JObject.Parse(jsonResult); var code = jo.Properties().Where(p => p.Name == "status").Select(p => p.Value.ToString()).FirstOrDefault(); //jo.Remove(); //请求成功 if (code == "1") { string value = jo.Properties().Where(p => p.Name == "geocodes").Select(p => p.Value.ToString()).FirstOrDefault(); JArray ja = (JArray)JsonConvert.DeserializeObject(value); return(ja[0]["location"].ToString()); } else //请求失败 { return(null); } }