/// <summary> /// 合并系统车场和百度车场 /// </summary> /// <param name="parks"></param> /// <param name="result"></param> /// <returns></returns> private List <BaiDuParkingLocation> MergeParking(List <BaseParkinfo> parks, BaiDuParking result) { List <BaiDuParkingLocation> models = new List <BaiDuParkingLocation>(); if (result.IsSuccess) { foreach (var item in result.results) { bool needExclude = false; foreach (var park in parks) { if (string.IsNullOrWhiteSpace(park.Coordinate) || !park.Coordinate.Contains(',')) { continue; } var lats = park.Coordinate.Split(','); var distance = XY.DistanceTo(item.location.lat.ToDouble(), item.location.lng.ToDouble(), lats[0].ToDouble(), lats[1].ToDouble()); if (distance <= 100) { needExclude = true; break; } } if (!needExclude) { BaiDuParkingLocation model = new BaiDuParkingLocation(); model.id = item.uid; model.street_id = item.street_id; model.uid = item.uid; model.lat = item.location.lat; model.lng = item.location.lng; model.name = item.name; model.address = item.address; model.type = 1; models.Add(model); } } } foreach (var park in parks) { if (string.IsNullOrWhiteSpace(park.Coordinate) || !park.Coordinate.Contains(',')) { continue; } var lats = park.Coordinate.Split(','); BaiDuParkingLocation model = new BaiDuParkingLocation(); model.id = park.PKID.ToString(); model.quantity = park.SpaceBitNum; model.lat = lats[0]; model.lng = lats[1]; model.name = park.PKName; model.address = park.Address; model.type = 0; models.Add(model); } return(models); }
public ActionResult GeParkingLocation(string lat, string lng) { try { List <BaseParkinfo> parks = QueryParkingService.QueryParkinfo(lat.ToDouble(), lng.ToDouble(), int.Parse(searchParkingRadius)); BaiDuParking result = BaiDuLocationService.RoundSearch("停车场", lat, lng, int.Parse(searchParkingRadius)); List <BaiDuParkingLocation> models = MergeParking(parks, result); return(Json(MyResult.Success("获取成功", models))); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPageError", "获取车场失败", ex, LogFrom.WeiXin); return(Json(MyResult.Error("获取车场失败"))); } }