public List <Models.Service.BridgeServiceModel> GetListBridgeServiceModel()
        {
            List <Models.Service.BridgeServiceModel> lbsm = new List <Models.Service.BridgeServiceModel>();
            CDLContext db = new CDLContext();

            List <Bridge> bridges = new List <Bridge>();

            bridges = db.Bridge.ToList();

            foreach (var b in bridges)
            {
                var bsm = new Models.Service.BridgeServiceModel();
                bsm.Guid      = b.Guid;
                bsm.Latitude  = b.Latitude;
                bsm.Longitude = b.Longitude;
                bsm.Location  = b.Address1;
                bsm.City      = b.City;

                if (b.Height == null)
                {
                    b.Height = 0;
                }
                bsm.heightRestriction = (float)b.Height;

                if (b.Weights.Count >= 1)
                {
                    bsm.weightStraightTruck = (float)b.Weights.ElementAt(0).maxWeight;
                }
                if (b.Weights.Count >= 2)
                {
                    bsm.weightSingleTrailer = (float)b.Weights.ElementAt(1).maxWeight;
                }
                if (b.Weights.Count >= 3)
                {
                    bsm.weightDoubleTrailer = (float)b.Weights.ElementAt(2).maxWeight;
                }

                lbsm.Add(bsm);
            }

            //lbsm = db.Bridge.ToList().Select(b => new { b.Guid, b.Height, b.Latitude, b.Longitude }).ToList();

            return(lbsm);
        }
Пример #2
0
        public List<Models.Service.BridgeServiceModel> GetListBridgeServiceModel()
        {
            List<Models.Service.BridgeServiceModel> lbsm = new List<Models.Service.BridgeServiceModel>();
            CDLContext db = new CDLContext();

            List<Bridge> bridges = new List<Bridge>();

            bridges = db.Bridge.ToList();

            foreach(var b in bridges)
            {
                var bsm = new Models.Service.BridgeServiceModel();
                bsm.Guid = b.Guid;
                bsm.Latitude =  b.Latitude;
                bsm.Longitude = b.Longitude;
                bsm.Location = b.Address1;
                bsm.City = b.City;

                if (b.Height == null)
                    b.Height = 0;
                bsm.heightRestriction = (float) b.Height;

                if (b.Weights.Count >= 1)
                    bsm.weightStraightTruck = (float) b.Weights.ElementAt(0).maxWeight;
                if (b.Weights.Count >= 2)
                    bsm.weightSingleTrailer = (float) b.Weights.ElementAt(1).maxWeight;
                if (b.Weights.Count >= 3)
                    bsm.weightDoubleTrailer = (float) b.Weights.ElementAt(2).maxWeight;

                lbsm.Add(bsm);
            }

            //lbsm = db.Bridge.ToList().Select(b => new { b.Guid, b.Height, b.Latitude, b.Longitude }).ToList();

            return lbsm;
        }
        public List <Models.Service.BridgeServiceModel> GetListByDistanceFrom(double latitude, double longitude, float distance)
        {
            List <Models.Service.BridgeServiceModel> lbsm = new List <Models.Service.BridgeServiceModel>();
            CDLContext db = new CDLContext();

            GeoCoordinate gc = new GeoCoordinate(latitude, longitude);

            List <Bridge> bridges = new List <Bridge>();

            //bridges = db.Bridge.Where(b =>
            // (1000D * _eQuatorialEarthRadius * 2D * Math.Atan2(Math.Sqrt(Math.Pow(Math.Sin((double)((b.Latitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((double)((b.Longitude - longitude) * _d2r) / 2D), 2D)), Math.Sqrt(1D - Math.Pow(Math.Sin((double)((b.Longitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((((double)b.Longitude - longitude) * _d2r) / 2D), 2D))) <= distance)
            //== true ).ToList();
            //(1000D * _eQuatorialEarthRadius * 2D * Math.Atan2(Math.Sqrt(Math.Pow(Math.Sin((double)((b.Latitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((double)((b.Longitude - longitude) * _d2r) / 2D), 2D)), Math.Sqrt(1D - Math.Pow(Math.Sin((double)((b.Longitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((((double)b.Longitude - longitude) * _d2r) / 2D), 2D))) <= distance)

            //bridges = (from b in db.Bridge
            //          where  (1000D * (b.Latitude - Math.Abs(latitude))  <= distance)
            //          select b).ToList();

            bridges = db.Bridge.ToList();

            foreach (var b in bridges)
            {
                var bsm = new Models.Service.BridgeServiceModel();
                bsm.Guid      = b.Guid;
                bsm.Latitude  = b.Latitude;
                bsm.Longitude = b.Longitude;
                bsm.Location  = b.Address1;
                bsm.City      = b.City;

                var bridgeGC = new GeoCoordinate();

                bridgeGC.Latitude  = bsm.Latitude;
                bridgeGC.Longitude = bsm.Longitude;

                if (b.Height == null)
                {
                    b.Height = 0;
                }

                bsm.heightRestriction = (float)b.Height;

                if (b.Weights.Count >= 1)
                {
                    if (b.Weights.ElementAt(0).maxWeight != null)
                    {
                        bsm.weightStraightTruck = (float)b.Weights.ElementAt(0).maxWeight;;
                    }
                }
                if (b.Weights.Count >= 2)
                {
                    if (b.Weights.ElementAt(1).maxWeight != null)
                    {
                        bsm.weightSingleTrailer = (float)b.Weights.ElementAt(1).maxWeight;
                    }
                }
                if (b.Weights.Count >= 3)
                {
                    if (b.Weights.ElementAt(2).maxWeight != null)
                    {
                        bsm.weightDoubleTrailer = (float)b.Weights.ElementAt(2).maxWeight;
                    }
                }
                if (bridgeGC.GetDistanceTo(gc) <= distance * 1609.344)  // within distance passsed in keep it
                {
                    lbsm.Add(bsm);
                }
            }

            return(lbsm);
        }
Пример #4
0
        public List<Models.Service.BridgeServiceModel> GetListByDistanceFrom(double latitude, double longitude, float distance)
        {
            List<Models.Service.BridgeServiceModel> lbsm = new List<Models.Service.BridgeServiceModel>();
            CDLContext db = new CDLContext();

            GeoCoordinate gc = new GeoCoordinate(latitude, longitude);

            List<Bridge> bridges = new List<Bridge>();

            //bridges = db.Bridge.Where(b =>
            // (1000D * _eQuatorialEarthRadius * 2D * Math.Atan2(Math.Sqrt(Math.Pow(Math.Sin((double)((b.Latitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((double)((b.Longitude - longitude) * _d2r) / 2D), 2D)), Math.Sqrt(1D - Math.Pow(Math.Sin((double)((b.Longitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((((double)b.Longitude - longitude) * _d2r) / 2D), 2D))) <= distance)
            //== true ).ToList();
             //(1000D * _eQuatorialEarthRadius * 2D * Math.Atan2(Math.Sqrt(Math.Pow(Math.Sin((double)((b.Latitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((double)((b.Longitude - longitude) * _d2r) / 2D), 2D)), Math.Sqrt(1D - Math.Pow(Math.Sin((double)((b.Longitude - latitude) * _d2r) / 2D), 2D) + Math.Cos(latitude * _d2r) * Math.Cos((double)b.Latitude * _d2r) * Math.Pow(Math.Sin((((double)b.Longitude - longitude) * _d2r) / 2D), 2D))) <= distance)

            //bridges = (from b in db.Bridge
            //          where  (1000D * (b.Latitude - Math.Abs(latitude))  <= distance)
            //          select b).ToList();

            bridges = db.Bridge.ToList();

            foreach (var b in bridges)
            {
                var bsm = new Models.Service.BridgeServiceModel();
                bsm.Guid = b.Guid;
                bsm.Latitude = b.Latitude;
                bsm.Longitude = b.Longitude;
                bsm.Location = b.Address1;
                bsm.City = b.City;

                var bridgeGC = new GeoCoordinate();

                bridgeGC.Latitude = bsm.Latitude;
                bridgeGC.Longitude = bsm.Longitude;

                if (b.Height == null)
                    b.Height = 0;

                bsm.heightRestriction = (float) b.Height;

                if (b.Weights.Count >= 1)
                    if (b.Weights.ElementAt(0).maxWeight != null)
                    {
                        bsm.weightStraightTruck = (float)b.Weights.ElementAt(0).maxWeight; ;
                    }
                if (b.Weights.Count >= 2)
                    if (b.Weights.ElementAt(1).maxWeight != null)
                    {
                        bsm.weightSingleTrailer = (float)b.Weights.ElementAt(1).maxWeight;
                    }
                if (b.Weights.Count >= 3)
                    if (b.Weights.ElementAt(2).maxWeight != null)
                    {
                    bsm.weightDoubleTrailer = (float)b.Weights.ElementAt(2).maxWeight;
                    }
                if(bridgeGC.GetDistanceTo(gc) <= distance * 1609.344)  // within distance passsed in keep it
                {
                    lbsm.Add(bsm);
                }
            }

            return lbsm;
        }
Пример #5
0
        public List<CDLRouteHelper.Models.Service.BridgeServiceModel> GetListBridgesByAll(double latitude, double longitude, float height, float weight, string trucktype, float distance)
        {
            List<Bridge> bFoundL = new List<Bridge>();
            List<CDLRouteHelper.Models.Service.BridgeServiceModel> lbsm = new List<CDLRouteHelper.Models.Service.BridgeServiceModel>();

            CDLContext db = new CDLContext();
            TruckType tType;

            //"Straight Truck", "Single Trailer", "Double Trailer"
            if (trucktype == "Single")
                tType = TruckType.Single;
            else if (trucktype == "Double")
                tType = TruckType.Double;
            else                           // (tType == "Straight Truck")
                tType = TruckType.Straight;

            bFoundL = db.Bridge.Where(b => ((b.Height <= height) || b.Weights.Any(w => w.maxWeight <= weight && w.TruckType == tType))).ToList();

            var gc = new GeoCoordinate();
            gc.Latitude = latitude;
            gc.Longitude = longitude;

            foreach (var b in bFoundL)
            {
                var bsm = new Models.Service.BridgeServiceModel();
                bsm.Guid = b.Guid;
                bsm.Latitude = b.Latitude;
                bsm.Longitude = b.Longitude;
                bsm.Location = b.Address1;
                bsm.City = b.City;

                var bridgeGC = new GeoCoordinate();

                bridgeGC.Latitude = bsm.Latitude;
                bridgeGC.Longitude = bsm.Longitude;

                if (b.Height == null)
                    b.Height = 0;

                bsm.heightRestriction = (float)b.Height;

                if (b.Weights.Count >= 1)
                    if (b.Weights.ElementAt(0).maxWeight != null)
                    {
                        bsm.weightStraightTruck = (float)b.Weights.ElementAt(0).maxWeight; ;
                    }
                if (b.Weights.Count >= 2)
                    if (b.Weights.ElementAt(1).maxWeight != null)
                    {
                        bsm.weightSingleTrailer = (float)b.Weights.ElementAt(1).maxWeight;
                    }
                if (b.Weights.Count >= 3)
                    if (b.Weights.ElementAt(2).maxWeight != null)
                    {
                        bsm.weightDoubleTrailer = (float)b.Weights.ElementAt(2).maxWeight;
                    }

                if (bridgeGC.GetDistanceTo(gc) <= distance * 1609.344)  // within distance passsed in keep it
                {
                    lbsm.Add(bsm);
                }
            }

            //bReturnL.Add(new Bridge { Address1 = "f32df2", City = "SomeCity", Latitude=43.17296218, Longitude=-78.696838, BridgeId=1});
            //bReturnL.Add(new Bridge { Address1 = "f32df2", City = "SomeCity", Latitude = 43.1837882995605, Longitude = -78.6621017456055 });

            return lbsm;
        }