Skip to content

Instantly share code, notes, and snippets.

@sir4ju1
Created April 25, 2014 09:52
Show Gist options
  • Save sir4ju1/11284065 to your computer and use it in GitHub Desktop.
Save sir4ju1/11284065 to your computer and use it in GitHub Desktop.
Find Closest Location from longitude and latitude within Sql database using Linq
var constValue = 57.2957795130823D
var constValue2 = 3958.75586574D;
var searchWithin = 20;
double latitude = ConversionHelper.SafeConvertToDoubleCultureInd(Latitude, 0),
longitude = ConversionHelper.SafeConvertToDoubleCultureInd(Longitude, 0);
var loc = (from l in DB.locations
let temp = Math.Sin(Convert.ToDouble(l.Latitude) / constValue)
* Math.Sin(Convert.ToDouble(latitude) / constValue)
+ Math.Cos(Convert.ToDouble(l.Latitude) / constValue)
* Math.Cos(Convert.ToDouble(latitude) / constValue)
* Math.Cos((Convert.ToDouble(longitude) / constValue)
- (Convert.ToDouble(l.Longitude) / constValue))
let calMiles = (constValue2 * Math.Acos(temp > 1 ? 1 : (temp < -1 ? -1 : temp)))
where (l.Latitude > 0 && l.Longitude > 0)
orderby calMiles
select new location
{
Name = l.name
});
return loc .ToList();
@enggarprdh
Copy link

what constValue? why u need that?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment