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