The calculated distance (air line) between Oliveira do Douro and Viana do Castelo is approximately 41 miles respectively 67 kilometers.
By car or train, the actual journey to Viana do Castelo is certainly longer, as only the direct route (as the crow flies) between Oliveira do Douro and Viana do Castelo has been calculated here.
Air line (approximately)
67 kilometers
36 nautical miles