Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public object DistanceFrom(
- IEnumerable<Coordinate> coordinates) {
- IEnumerable<DbGeography> addresses = coordinates.Select(
- c =>
- DbGeography.FromText(String.Format("POINT ({0} {1})", c.Longitude, c.Latitude)));
- IEnumerable<VehicleGeography> vehicles = this.GPSInsightProvider.Query().Document.Placemarks.Select(
- p =>
- new VehicleGeography {
- DriverName = p.DriverName,
- Point = DbGeography.FromText(String.Format("POINT ({0} {1})", p.Point.Longitude, p.Point.Latitude))
- });
- ICollection<object> technicians = new List<object>();
- foreach (DbGeography address in addresses) {
- technicians.Add(vehicles.Select(
- v =>
- new {
- DriverName = v.DriverName,
- Distance = v.Point.Distance(address) / 1609.344
- }).Where(
- v =>
- v.Distance.HasValue).OrderBy(
- v =>
- v.Distance).Take(3).Select(
- v =>
- new {
- DriverName = v.DriverName,
- Distance = String.Format("{0:#.#}", v.Distance)
- }));
- }
- return technicians;
- }
- public object DistanceFrom(IEnumerable<Coordinate> coordinates)
- {
- IEnumerable<DbGeography> addresses = coordinates.Select(c =>
- DbGeography.FromText(String.Format("POINT ({0} {1})", c.Longitude, c.Latitude)));
- IEnumerable<VehicleGeography> vehicles = this.GPSInsightProvider.Query().Document.Placemarks.Select(p =>
- new VehicleGeography
- {
- DriverName = p.DriverName,
- Point = DbGeography.FromText(String.Format("POINT ({0} {1})", p.Point.Longitude, p.Point.Latitude))
- });
- ICollection<object> technicians = new List<object>();
- foreach (DbGeography address in addresses)
- {
- technicians.Add(
- vehicles
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = v.Point.Distance(address) / 1609.344
- })
- .Where(v =>v.Distance.HasValue)
- .OrderBy(v =>v.Distance)
- .Take(3)
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = String.Format("{0:#.#}", v.Distance)
- }));
- }
- return technicians;
- }
- technicians.Add(
- vehicles
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = v.Point.Distance(address) / 1609.344
- })
- .Where(v =>v.Distance.HasValue)
- .OrderBy(v =>v.Distance)
- .Take(3)
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = String.Format("{0:#.#}", v.Distance)
- }));
- var vehiclesByDistance =
- vehicles
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = v.Point.Distance(address) / 1609.344
- })
- .Where(v =>v.Distance.HasValue)
- .OrderBy(v =>v.Distance);
- technicians.Add(
- vehiclesByDistance
- .Take(3)
- .Select(v =>
- new
- {
- DriverName = v.DriverName,
- Distance = String.Format("{0:#.#}", v.Distance)
- }));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement