I am working on a application where I need to get nearby location, my web service will receive 2 parameters (decimal longitude, decimal latitude )
I have a table where the locations are saved in database with longitude and latitude fields,
I want to retrieve the nearest locations.
Can anyone help?
Here is my code:
var locations = from l in locations select l
Here are further details about this : i have a 2 fields (decimal(18, 2) null) 1 latitude, 2 longitude inside a database table,
and i have a method
public List<Locations> GetLocation(decimal? Long, decimal? lat) { var Loc = from l in Locations //// now here is how to get nearest location ? how to query? //// i have also tried Math.Abs(l.Lat - lat) its giving error about nullable decimal always hence i have seted decimal to nullable or converted to nullable //// also i have tried where (l.lat - Lat) * (l.lon - Long) this is also giving error about can not convert decimal to bool return Loc.ToList(); }
To get the latitude of the address in cell B2, use the formula = GetLatitude(B2) To get the longitude of the address in cell B2, use the formula = GetLongitude(B2) To get both the latitude and longitude of the address in cell B2, use the formula = GetCoordinates(B2)
Format("POINT({0} {1})", longitude, latitude)); var nearbyLocations = (from location in _context. Locations where // (Additional filtering criteria here...) select new { LocationID = location.ID, Address1 = location. Address1, City = location. City, State = location.
You could first convert the location data in database to System.Device.Location.GeoCoordinate
, then use LINQ to find the nearest one.
var coord = new GeoCoordinate(latitude, longitude); var nearest = locations.Select(x => new GeoCoordinate(x.Latitude, x.Longitude)) .OrderBy(x => x.GetDistanceTo(coord)) .First();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With