I have lately been doing some research for alternative geocoderes to Google, Yahoo and Bings geocoders, as they do not allow storing the received data (we need to receive geocoordinates in a mobile app, to minimize the time and data spent). The addresses are in Denmark, so two of the three alternatives I found only support Danish addresses:
- Nominatim — May not have complete data, but so far i have not encountered any addresses not supported. It takes about 3-13 seconds per request. It is the only geocoder of the three, that supports addresses outside Denmark. It is part of the OpenStreetMap project.
- Adressewebservices — Is a SOAP webservice that is created by the Danish Enterprise and Construction Authority, it is, however, the slowest of the three (about a minute per request).
Some of these seems pretty slow, and user can not be expected to wait one minute for a geocoder to do its job, therefore it might be an advantage to use a cron-job or equivalent for this tasks, and collect the coordinates ones a day, or perhaps use the cron job in combination with the Nominatim service, which may be reasonably fast, and, if no result are found, use the cron job to find alternative coordinates later.