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