First of all: if you haven't seen Geo::Coder::US (and Geo::Coder::US::Import) you should take a look at them. With a moderate amount of initial setup, you can do all of your geocoding locally, which may be helpfull if you need to deal with a large volume of addresses, or try lots of varients of each address.
Second: Try lots of varients of each address. For example: http://geocoder.us/ does very poorly with the address "235 Second Street, 94105", but it does a great job with "235 2nd Street, 94105". Parsing the address into it's components (using Geo::StreetAddress::US) and then trying to "tweak" the various components untill you get a match may be the way to go.
Lastly: As you may or may not know, http://geocoder.us/ is powered by Geo::Coder::US and Geo::StreetAddress::US. Those modules are both documented to have issues with addresses in Michigan which contain letters in the buildeing number. If you've got some time/energy/need - you might try patching them to fix that bug.
UPDATE: Acctaully, I just realized that Geo::Coder::US->filter_ranges might be exactly what you need .. I haven't tried it myself.
In reply to Re: Looking for a cheap, Perl-friendly GeoCoding service
by hossman
in thread Looking for a cheap, Perl-friendly GeoCoding service
by sgifford
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |