At Biarri we’re always on the look out for inexpensive, light tools that we can integrate with and pass on the value to our Workbench customers. We’ve been hunting for quite a while but haven’t yet found a good free Geocoder that is suitable for possibly intensive commercial use (and preferably worldwide!). Geocoders turn addresses into latitude/longitude coordinates; reverse geocoding, which is also sometimes useful, finds the closest valid address given a coordinate.
Any geocoder worth its salt needs to be able to do a good job at fuzzy string matching because addresses are frequently given incorrectly (e.g. “Road” instead of “Street”, multiple names for highways – “Hume Highway” vs “M31”, common misspellings, ambiguity at suburb boundaries, confusion over locality names, etc). It’s the quality of this matching in combination with the correctness and up-to-date-ness of the underlying map data that sets different geocoders apart.
I recently tried out TinyGeocoder. It has a simple API which appears to work quite well. It doesn’t give you any direct information about what it matched to or how well it matched, though you can use the reverse geocoding function to get an idea. Though I’m finding the results a little bit patchy and fickle (some well known streets just inexplicably won’t geocode, for example), and not particularly fast, overall it is a reasonable tool.