The calculated distance (air line) between Sonsonate and San Marcos is approximately 37 miles respectively 59 kilometers.
By car or train, the actual journey to San Marcos is certainly longer, as only the direct route (as the crow flies) between Sonsonate and San Marcos has been calculated here.
Air line (approximately)
59 kilometers
32 nautical miles