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> 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); }
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; }
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; }