{ "id": "78716", "key": "TIMOB-4880", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2012-03-05T20:23:58.000+0000", "created": "2011-08-03T11:15:08.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "tbs-1.9.0" ], "versions": [ { "id": "12570", "name": "Release 1.7.5", "archived": true, "released": true, "releaseDate": "2011-11-02" } ], "issuelinks": [ { "id": "15536", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "84760", "key": "TIMOB-7116", "fields": { "summary": "MobileWeb: Complete Ti.Geolocation implementation", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-06-07T21:31:41.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10224", "name": "TiAPI", "description": "This component is used for cross-platform API work. Specifications are most likely to use this component." } ], "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.\r\n\r\nUnfortunately 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.\r\n\r\nThe 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.\r\n\r\nhttp://code.google.com/apis/maps/documentation/geocoding/\r\n\r\nIf 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.\r\n\r\nThe 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.\r\n\r\nI 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.\r\n\r\n", "attachment": [], "flagged": false, "summary": "TiAPI: Replace calls to api.appcelerator.net/p/v1/geo with direct calls to Google API", "creator": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "174034", "author": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Don, \r\n\r\nWe 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.\r\n\r\nI 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. \r\n\r\nThe 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.\r\n\r\nLet me know what you think. Can this be scheduled for an upcoming release, or are there other issues to consider?\r\n\r\nThanks,\r\n\r\nChung", "updateAuthor": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-11-28T09:58:45.000+0000", "updated": "2011-11-28T09:58:45.000+0000" }, { "id": "179481", "author": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The implementation of this new feature should satisfy CLOUDENG-167 if possible.", "updateAuthor": { "name": "cliu", "key": "cliu", "displayName": "Chung Liu", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-16T15:51:59.000+0000", "updated": "2012-01-16T15:51:59.000+0000" }, { "id": "185119", "author": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "body": "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.", "updateAuthor": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-03-05T20:23:58.000+0000", "updated": "2012-03-05T20:23:58.000+0000" }, { "id": "185943", "author": { "name": "racielrod", "key": "racielrod", "displayName": "Rasiel Rodriguez", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Neeraj,\r\n\r\nDid 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", "updateAuthor": { "name": "racielrod", "key": "racielrod", "displayName": "Rasiel Rodriguez", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-03-12T06:21:29.000+0000", "updated": "2012-03-12T06:21:29.000+0000" }, { "id": "421251", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket, please open a new ticket if any more problems persist.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-06-07T21:31:41.000+0000", "updated": "2017-06-07T21:31:41.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }