There are
310 mi
from Elgin, IL to Hannibal, MO
That's the driving distance. It would take 5 hours 49 mins to go from Elgin, Illinois to Hannibal, Missouri.
The flight distance (direct flight from Elgin, IL to Hannibal, MO) is 227.44 mi.
310 mi = 499.33 kms