I've looked at the Google Maps api, Yahoo Maps Api, MapQuest API, and the Microsoft Virtual Earth API. None of these free services allow bulk geocoding.
But, Google Maps api allows 15,000 goecodes per day. But they don't like it when you send too many at one time. They suggest waiting 200ms between requests. They track you by IP address btw.
Yahoo allows 5,000 per day, and is also an easy api to use.
Microsoft Virtual Earth allows 5,000 per day, but the api documentation is a pain in the butt.
MapQuest is just strange, and doesn't seem to give good results (least accurate of all that I've seen).
I've actually set up my code to alternate between several services so I can make multiple requests at once. This - sort of - simulates bulk encoding.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…