The calculated distance (air line) between Kirkcaldy and Bonnyrigg is approximately 17 miles respectively 27 kilometers.
By car or train, the actual journey to Bonnyrigg is certainly longer, as only the direct route (as the crow flies) between Kirkcaldy and Bonnyrigg has been calculated here.