I am writing an Android app that would display "offers" people have made on a website on Google Map. I currently have 20-30k offers in database, but they are stored by address not by coordinates, so before displaying them on the Google Map I need to geocode the addresses to get coordinates. The location of offers will not change, so I would need to geocode every address only once.
Here's my problem. I need to geocode 20k addresses of offers already in database and all future offers (about 100/day). But after reading The Google Geocoding API TOS I realized that it is illegal to store geocoded results.
Also note that the caching of geocoding results is only allowed for the purpose of improving the performance of your application, and cached results may not be stored for more than 30 days. For example, you must not use the results to create an independent database of places or other local listings information.
So my question is how should I approach this? I'd like to do the geocoding in server side and then send the coordinates of offers to the app for displaying. Geocoding all the addresses client-side would be way too slow and kinda pointless, because the addresses never change.
If I save geocoded coordinates server-side would this fall under the
caching of geocoding results is only allowed for the purpose of improving the performance of your application
clause in Google Maps TOS?