There are
281 mi
from Lafayette, IN to Hannibal, MO
That's the driving distance. It would take 5 hours 19 mins to go from Lafayette, Indiana to Hannibal, Missouri.
The flight distance (direct flight from Lafayette, IN to Hannibal, MO) is 242.04 mi.
281 mi = 452.00 kms