The google GeoLocation API is not stable in China, about 30% requests return "can't connect to the server".
I am planning to build up a middle LBS based on google GeoLoaction API, I.E. cache user's request and transfer the request to Google, and at same time cache the result to our server.
And then the next time when user request, I can return the result from my server if matched request found or transfer the request to google, saving money and improving the access rate by this.
Is there any better solution? Is there any problem for doing so?
Google's terms of use for the Maps API does allow some caching for performance purposes. Here's an excerpt:
(b) No Pre-Fetching, Caching, or Storage of Content. You must not pre-fetch, cache, or store any Content, except that you may store: (i) limited amounts of Content for the purpose of improving the performance of your Maps API Implementation if you do so temporarily (and in no event for more than 30 calendar days), securely, and in a manner that does not permit use of the Content outside of the Service; and (ii) any content identifier or key that the Maps APIs Documentation specifically permits you to store. For example, you must not use the Content to create an independent database of "places" or other local listings information.