The calculated distance (air line) between Puigcerdà and Canillo is approximately 19 miles respectively 31 kilometers.
By car or train, the actual journey to Canillo is certainly longer, as only the direct route (as the crow flies) between Puigcerdà and Canillo has been calculated here.