There are
2,704 mi
from Portsmouth, VA to Canyon Lake, CA
That's the driving distance. It would take 1 day 23 hours to go from Portsmouth, Virginia to Canyon Lake, California.
The flight distance (direct flight from Portsmouth, VA to Canyon Lake, CA) is 2,304.30 mi.
2,704 mi = 4,351.48 kms