Patent ID: 8045995

Claim:
A centralized location system comprising: a location update application programming interface (API) to receive varying types of location inputs for a user from at least one location-providing application, wherein receiving location inputs from the at least one location-providing application comprises receiving from the user location inputs including at least one selected from the group consisting of a user-specified identifier or location and an identifier provided by a third party location tracking application; a memory to store a location of the user and the location inputs, wherein the location update API periodically updates in the memory the location inputs when location updates are received from the at least one location-providing application; a location export API to, upon request from a location-based service application, process the location inputs to estimate a location of the user, which location estimate replaces the stored location in memory and is sent to the location-based service application; a processor configured to: register the at least one location-providing application and the location-based service application for system access by providing to the applications an application token and a secret; compare a hashed encrypted version of the secret provided by an application attempting access with a hashed encrypted version thereof stored at registration; and identify the application attempting access upon finding a match of the hashed encrypted secret and verifying the application token; a user interface to enable the user to specify a location granularity comprising a level of location precision to which one or more of the at least one location-providing application and the location-based service application are authorized access; wherein the memory stores the location inputs from the at least one location-providing application according to the location granularity associated therewith as authorized by the user, and wherein the location sent to the location-based service application is confined to the granularity authorized for access by the user.