예제 #1
0
        /// <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);
        }
예제 #2
0
        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("获取车场失败")));
            }
        }