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