调用百度API接口 正解析地址和逆解析


地址解析(结构化地址 解析得到 经纬度):

public void SaveLocation(DataRequest<Location> request, DataResponse<ResultModel> response) { var result = new ResultModel(); try { var LongitudeAndLatitude = Config.GetConfig("LongitudeAndLatitude"); string ak = LongitudeAndLatitude["ak"]; //地址解析(结构化地址 解析得到 经纬度) //用户可通过该功能,将结构化地址(省/市/区/街道/门牌号)解析为对应的位置坐标。地址结构越完整,地址内容越准确,解析的坐标精度越高。 //使用示例一:http://api.map.baidu.com/geocoder/v2/address=结构化的地址&output=json&ak=你的密钥 //API服务地址:http://api.map.baidu.com/geocoder/v2/?          //GET请求
                string ApiUrl = string.Format("http://api.map.baidu.com/geocoder/v2/?address={0}&output=json&ak={1}", request.ObjectData.ServiceAddress, ak); string httpResult = HttpHelper.Download(ApiUrl); dynamic jsonResult = JsonHelper.DeserializeObject<dynamic>(httpResult); if (jsonResult.status.ToString() == "0") { decimal lng =decimal.Parse(jsonResult.result.location.lng); decimal lat = decimal.Parse(jsonResult.result.location.lat); Location Location = new Location { Longitude = lng, Latitude = lat, DriveTime = DateTime.Now, ServiceType = "完成试驾用车服务", ServiceAddress = request.ObjectData.ServiceAddress }; SQLHelper.SaveEntry(Location, EntityState.Added); } result.Status = ResultStatus.Success; result.Message = "完成体验驾驶服务定位成功!"; } catch (Exception ex) { result.Status =ResultStatus.Fail; result.Message = ex.Message; if (ex.InnerException != null) result.Message = ex.InnerException.Message; 
 } response.ObjectData = result; }

地理位置转换经纬度坐标 - 逆地址解析(经纬度 解析得到 结构化地址)

 public void SaveLongitudeAndLatitude(DataRequest<dynamic> request, DataResponse<ResultModel> response) { var result = new ResultModel(); try { string ClientInfo = null; var httpContext = Common.CommonHelper.GetHttpContext(); if (httpContext != null) { if (httpContext.Request.Headers.ContainsKey("ClientInfo")) { ClientInfo = httpContext.Request.Headers["ClientInfo"]; var LongitudeAndLatitude = Config.GetConfig("LongitudeAndLatitude"); string ak = LongitudeAndLatitude["ak"]; dynamic jsonResult = JsonHelper.DeserializeObject<dynamic>(ClientInfo); //API服务地址:http://api.map.baidu.com/geocoder/v2/?          //GET请求 //使用示例:http://api.map.baidu.com/geocoder/v2/?location=纬度,经度&output=xml&pois=1&ak=你的ak [ !注意:location=纬度,经度 ,不要写反了 ]
                        string ApiUrl = string.Format("http://api.map.baidu.com/geocoder/v2/?location={0}&output=json&ak={1}", jsonResult.Latitude + "," + jsonResult.Longitude, ak); string httpResult = HttpHelper.Download(ApiUrl); dynamic jsonRespone = JsonHelper.DeserializeObject<dynamic>(httpResult); var address = string.Empty; if (jsonRespone.status.ToString() == "0") { string business = jsonRespone.result.business.ToString(); string formatted_address = ConvertHelper.GetString(jsonRespone.result.formatted_address); string sematic_description = ConvertHelper.GetString(jsonRespone.result.sematic_description); address = formatted_address + sematic_description;  } else { address = "无法获取当前地理位置,调用服务异常..."; }  Location Location = new Location {  Longitude = jsonResult.Longitude, Latitude = jsonResult.Latitude, DriveTime = DateTime.Now, ServiceType = "开始体验驾驶服务", ServiceAddress = address }; SQLHelper.SaveEntry(Location, EntityState.Added); } result.Status = ResultStatus.Success; result.Message = "记录开始驾驶定位信息!"; } } catch (Exception ex) { result.Status = ResultStatus.Fail; result.Message = ex.Message; if (ex.InnerException != null) result.Message = ex.InnerException.Message; 
 } response.ObjectData = result; }
经纬度获取地址 逆解析
Headers
  [{"key":"ClientInfo","value":"{\"Latitude\" :\"22.615589046911805\",\"Longitude\":\"114.03483089395202\"}","description":"","type":"text","enabled":true}]
{"Latitude" :"22.615589046911805","Longitude":"114.03483089395202"}
 
 
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM