[TIMOB-4880] TiAPI: Replace calls to api.appcelerator.net/p/v1/geo with direct calls to Google API
GitHub Issue | n/a |
---|---|
Type | New Feature |
Priority | Critical |
Status | Closed |
Resolution | Invalid |
Resolution Date | 2012-03-05T20:23:58.000+0000 |
Affected Version/s | Release 1.7.5 |
Fix Version/s | n/a |
Components | TiAPI |
Labels | tbs-1.9.0 |
Reporter | Chung Liu |
Assignee | Neeraj Gupta |
Created | 2011-08-03T11:15:08.000+0000 |
Updated | 2017-06-07T21:31:41.000+0000 |
Description
Ti.Geolocation.forwardGeocoder and Ti.Geolocation.reverseGeocoder make calls to api.appcelerator.net/p/v1/geo, which in turn makes calls to Google or Yahoo, and returns data in json format.
Unfortunately we are exceeding the 24-hour limits on the free calls to Google and Yahoo, and the calls often start failing at a certain time of the day. To continue offering this service we would have to start paying Google or Yahoo for the calls.
The Titanium implementation of forward/reverse geocoder should be changed to directly use Google geolocation API V3, which does not require an API key. Since an API key is not required, the developer doesn't have to encode credentials in the app.
http://code.google.com/apis/maps/documentation/geocoding/
If Titanium directly calls the Google API without going through api.appcelerator.net, the calls will be originating from different IP addresses, so the 24-hour limit will not be an issue.
The returned data from the Google API can be reformatted to match what Ti.Geolocation.forwardGeocoder and Ti.Geolocation.reverseGeocoder return now, so this change can be backwards compatible.
I am setting the priority of this issue to High, because the API is currently failing during certain periods when the daily limit is exceeded and Google decides to block us.
Don, We did some additional hacks, but the geo calls are now failing roughly between 8pm and midnight because we are reaching both the Google and Yahoo rate limits. I asked Jo Ann, and she says we should replace this with a direct Google V3 call from the client, rather than pay for an account with a higher query limit. The Google V3 geo API does not require a key, so it can be completely implemented in the Titanium client side, calling the Google server endpoint directly, in a way that is API compatible with the current Ti.Geolocation call. Let me know what you think. Can this be scheduled for an upcoming release, or are there other issues to consider? Thanks, Chung
The implementation of this new feature should satisfy CLOUDENG-167 if possible.
We have decided not to implement this functionality at the SDK level as it violates the licensing terms. Cloud team has come up with a good solution on the server side.
Neeraj, Did you guys changed the implementation and also broke the response from your service? http://developer.appcelerator.com/question/133548/reversegeocoder-is-returning-a-different-format
Closing ticket, please open a new ticket if any more problems persist.