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