I tried this outstanding script to accomplish the same task. It is free, it was very reliable and relatively fast.
In my script, I have addresses stored in the database. Therefore, instead of showing a page for entering addresses, I just pass them as a string and allow the magic.
He talks about this in the application, but make sure that if you go this route, you will get your own Google Maps API. This will not work with him!
, MySQL, ( lat/long GEOCODING), , .