The calculated distance (air line) between Francistown and Mahalapye is approximately 141 miles respectively 227 kilometers.
By car or train, the actual journey to Mahalapye is certainly longer, as only the direct route (as the crow flies) between Francistown and Mahalapye has been calculated here.
Air line (approximately)
227 kilometers
122 nautical miles