public List <GeoPoint> GetAllInRange(GeoPoint point, int range) { List <GeoPoint> points = new List <GeoPoint>(); //Generates range 1 km in geographic degrees double rangeNS = Geographic.countRangeNS(range); double rangeEW = Geographic.countRangeEW(range, point.Latitude); //Generates range in geographic degrees for range in km string eastRange = (point.Longitude + rangeEW).ToString().Replace(",", "."); string westRange = (point.Longitude - rangeEW).ToString().Replace(",", "."); string northRange = (point.Latitude + rangeNS).ToString().Replace(",", "."); string southRange = (point.Latitude - rangeNS).ToString().Replace(",", "."); using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString)) { var sql = "SELECT * FROM Geopoints AS G " + $"WHERE G.Latitude BETWEEN {southRange} AND {northRange} AND G.Longitude BETWEEN {westRange} and {eastRange};"; db.Open(); points = db.Query <GeoPoint>(sql) .Distinct() .ToList(); } return(points); }