1. A computer implemented method for location aware applications, comprising: defining areas of interest on a map having a size that is selectable by a user; receiving raw location data at a location manager; determining when an item enters, exits and moves inside one of the areas of interest; generating a location event when it is determined that the item entered, exited, or moved inside one of the areas of interest; providing notice of the location event from the location manager to a location aware application without the raw location data; executing event driven code supplied by the location aware application in response to the notice of the location event received from the location manager; receiving at a map manager from the location aware application criteria including a type of an object to display; providing different map choices comprising separate maps to the location aware application based on the criteria; providing a ranking of the different map choices according to their order of suitability based on each of the different map choices comparison to the received criteria for the location aware application to make a selection from; selecting a map from a map store using the ranking of the different map choices; sharing the selected map with another location aware application without the map manager and the other location aware application requiring raw location data; and displaying the map using a map rendering engine, wherein the map rendering engine is selected from at least two map rendering engines.