The calculated distance (air line) between Foz do Douro and Cacém is approximately 168 miles respectively 270 kilometers.
By car or train, the actual journey to Cacém is certainly longer, as only the direct route (as the crow flies) between Foz do Douro and Cacém has been calculated here.
Air line (approximately)
270 kilometers
146 nautical miles