Sparse Wi-Fi access point database for mobile devices

An electronic device has a processor, a Wi-Fi radio, a first database and a second database. The first database includes geolocation and identity information of a sparse subset of a global catalog of Wi-Fi access points. The second database includes locally stored location-based content. The processor: (i) controls the Wi-Fi radio so as to detect one or more Wi-Fi access points proximate to the electronic device, (ii) makes an identification of the one or more detected Wi-Fi access points, (iii) makes a coarse determination of a location of the electronic device by comparing the identification of the one or more detected Wi-Fi access points with the geolocation identity information in the first database, (iv) selects location based content corresponding to the coarse determination from the second database or from a server, and (v) outputs the selected location-based content to a user of the electronic device.

BACKGROUND

Location-based services have become common functions of mobile devices such as smart phones, tablets, E-readers and similar personal electronic devices. Such functions may be enabled by way of a global positioning system (GPS) receiver, cell phone tower triangulation, and/or Wi-Fi positioning techniques. Known Wi-Fi positioning techniques rely on accessing a backend server (the “location server”), that catalogs identifying information and locations of a very large number of wireless network access points in a location server database. Known location server databases include the latitude, longitude, network name (service set identification or SSID), signal strength and media access control (MAC) address of some hundreds of millions of Wi-Fi access points (AP's). According to known Wi-Fi positioning techniques, when an app on a client mobile device is required to know the mobile device's geographic location, identifying information and signal strength of one or more Wi-Fi access points within range of the mobile device is sent to the location server. The location server uses this information, together with information in the location server database, to compute an estimate of the mobile device's location and return the estimate to the client mobile device. The estimate may be accurate to a few tens of meters. A number of popular mobile devices are Wi-Fi only devices, by which is meant that the devices omit the cost and overhead of a GPS receiver and are not enabled to operate with cellular networks (either as a result of the mobile device's design, or a choice of a user who prefers not to pay an additional fee to “activate” the device onto a cellular service provider's network). As a result, the only option for location-based services on such devices is to use Wi-Fi positioning.

DETAILED DESCRIPTION

The presently disclosed techniques relate to enabling delivery of location-based content on a mobile device even in the absence of an active Internet connection, whether or not the mobile device includes a GPS receiver or is operable with a cellular network. Delivery of location-based content refers to outputting, to a user of the mobile device, information that is tailored to the physical location of the mobile device. As a few examples, location-based content may include customized information, based on the physical location of the mobile device, related to the location of nearby businesses or government services, tourist attractions, local weather, traffic, news and advertisements. As contemplated by the present disclosure, the mobile device may make a coarse determination of its location by comparing received Wi-Fi access point (“AP”) identification information with a locally stored sparse database of AP geo-coordinates. Based on the coarse location determination, a location-appropriate selection of location-based content that may be locally stored on the mobile device may be output to a user of the mobile device.

As described above, provision of location-based content requires knowledge of the mobile device's (at least approximate) geographic location. When the mobile device has a connection with the Internet, a location estimate accurate to within a few tens of meters may be obtained from a back end server (the “location server”). The presently disclosed techniques relate to estimating the location of the mobile device without necessarily accessing the location server. As a result, location-based content may be provided on the mobile device even in the absence of an Internet connection. Moreover, even when the mobile device is connected with the Internet, the presently disclosed techniques may, advantageously, avoid the latency and compromise of user privacy associated with querying, and waiting for a response from, the location server.

In some implementations, a sparse access point (“AP”) database is stored on the device. The sparse AP database may only include identifying information and location information of a selected subset of the APs catalogued by the location server database.

In some implementations, for example, the locations where Wi-Fi devices are used most often may be identified. Such a location, referred to hereinbelow and in the claims, as a “point of interest” or “PoI” may be a destination or landmark where Wi-Fi devices are most likely to be clustered. For example, PoI's may include transportation hubs, shopping centers, museums, libraries and cultural centers, government buildings, sports complexes, parks, scenic places, cafes, restaurants, hotels, etc. The sparse AP database may be populated by first identifying a list of such PoI's, each PoI having a respective known location, and at least one nearby AP. In some implementations, a number of AP's, each AP being near the center of a respective PoI, may initially be selected and then other AP's may be selected that are 50-100 meter separate from each other and from the initially selected AP's.

The sparse AP database may be extracted from an existing location server database and may represent, for example, less than 1% of the total number of APs catalogued by the location database for any given geographic area. As a result, the presently contemplated techniques enable a reasonably sized, locally stored, database of AP's distributed across a broad geographic region. For example, the sparse database may relate to a geographic area equivalent to an entire metropolitan area, a county, a state, or an entire country. The number and geographic location of selected AP's may be determined so as to meet one or several coverage criteria. For example, the criteria may be to provide a 90-95% coverage of the entire geographic region or population. As a further example, the criteria may be to provide 99% coverage of urban regions, 50% coverage of suburban regions, and 10% coverage of rural or undeveloped regions. As a further example, the criteria may be to provide the best coverage (e.g., in terms of population density or geography) for a fixed number of AP's. As a yet further example, the criteria may include an objective of providing coverage to transportation corridors.

Referring now toFIG. 1, a simplified block diagram of a mobile electronic device in accordance with some implementations is illustrated. The electronic device100, which may be a tablet, E-reader, or other personal electronic device (PED) for example, includes a processor110, communicatively coupled with a Wi-Fi radio120. In some implementations, the electronic device100may have no other wireless communication capability other than that provided by the Wi-Fi radio120. The electronic device100may include a user input/output (I/O) interface150, including, for example, a display screen (which may be a touchscreen, for example) and/or a keyboard, control buttons and the like. In the illustrated implementation, electronic device100also includes a sparse AP database130and a location-based content database140.

The sparse AP database130stored on the electronic device100may include identifying information and location information of a subset of a larger list of known APs included in one or more location server databases.

In some implementations, the sparse AP database130may be a subset of the location server database that is selected in the following manner. The selected subset may be derived by first identifying PoI's where Wi-Fi devices are used most often. Such PoI's may include transportation hubs, shopping centers, museums, libraries and cultural centers, government buildings, sports complexes, parks, scenic places, cafes, restaurants, hotels, etc. Each PoI may have a respective known geo-coordinate and at least one nearby AP. In some implementations, an AP near the center of each respective PoI may initially be selected and then other AP's may be selected that are 50-100 meter separate from each other and from the initially selected AP's.

In some implementations, the sparse AP database130may be loaded onto electronic device100by the manufacturer or distributor of the electronic device100. Alternatively, or in addition, part or all of the sparse AP database130may be downloaded onto the electronic device100at such time(s) when the electronic device100is connected to the Internet. Likewise, the sparse AP database130may be updated from time to time when the electronic device100is connected to the Internet.

It is contemplated that the sparse AP database130may relate to a large geographic region that is no smaller than, for example, a typical metropolitan region of 10 square miles or greater. As a result, a user of the electronic device100loaded with a particular sparse AP database130may travel extensively without a need to update or replace the database. In some implementations, the sparse AP database130may relate to a geographic region as large as a state, country, continent, or the world, for example.

It will be appreciated that the term “sparse”, as used herein and in the claims, means that the AP database130includes a relatively small subset of a global catalog of known APs. Thus the AP database130represents a “sparse subset” of AP's that may include substantially less than one hundred percent of known APs in the particular geographic region to which the AP database130relates. It is contemplated that less than half of known APs in the particular geographic region may be included in the sparse AP database130. In some implementations, less than 1% of known APs in the particular geographic region may be included in the sparse AP database130.

For example, it is contemplated that APs included in the sparse AP database130may be selected such that there is a desired separation between any two APs. For example, given the typical range of operation of a Wi-Fi AP it is presently contemplated that a separation distance of about 50-100 meters on average may be provided. Thus, for example, in urban areas, where APs may be tightly clustered (in, for example, apartment buildings or office towers) most of such APs may be omitted from the sparse AP database130.

Referring still toFIG. 1, electronic device100also includes location-based content database140, which may be communicatively coupled with processor110. The location-based content database140may include location-based information that may be preloaded onto the electronic device100by the manufacturer or distributor of the electronic device100. In some implementations, some or all of the location-based content database140may be updated from time to time when the electronic device100is connected to the Internet.

Some parts of the location-based content database140may relate to advertising content that may be output to the user, upon request or at predetermined times and locations for example. Other parts of the location-based content database140may include location-based information that is not related to advertising. For example, parts of the location-based content database140may include educational information related to the history or geography of particular points of interest. As a further example, parts of the location-based content database140may include tourist information or information related to available government services relevant to a particular geographic location.

The processor110may be configured to control the Wi-Fi radio120. For example, under control of the processor110, the Wi-Fi radio120may scan so as to detect one or more Wi-Fi AP's that are within range of (“proximate to”) the electronic device. It will be appreciated that a Wi-Fi AP may ordinarily “broadcast”, over a range of up to about 50 m radius, identifying information regarding the Wi-Fi AP. For example, the Wi-Fi AP may broadcast its SSID and MAC address, and/or other identifying information. As a result, the processor110may be configured to receive identifying information for the one or more Wi-Fi AP's that are detected by the Wi-Fi radio120.

In some implementations, the processor110may use received identifying information of the one or more Wi-Fi APs that are detected by the Wi-Fi radio120in order to make a coarse determination of a location of the electronic device. It will be appreciated that the term “coarse”, as used herein and in the claims, to describe the presently described location determination, means that the determination may be based on a location of a single Wi-Fi access point that is both within range of the electronic device and listed in the sparse AP database130. As such, the location determination is relatively coarse compared to conventional techniques based on GPS, cell phone tower triangulation, and/or conventional Wi-Fi positioning techniques, which triangulate between at least two signal sources. The processor110may be configured to make a coarse determination of the location of the electronic device by comparing the identification of the one or more detected Wi-Fi APs with the identifying information in the sparse AP database130. The processor110may further be configured to select relevant information from the location-based content database140and output the selected information to the user of the electronic device100by way of the user I/O150.

FIG. 2illustrates an example use case scenario where electronic device100is operating within range of a number of Wi-Fi AP's201(i) in an urban environment. The electronic device100may receive information broadcast by any number of Wi-Fi APs201(i). In the illustrated example, the Wi-Fi radio120is within the range of Wi-Fi APs201(1),201(2),201(3), and201(4). It will be appreciated that the electronic device100may be within the range of a greater or smaller number of Wi-Fi AP's. In the illustrated example, the Wi-Fi radio120may receive identifying information from Wi-Fi APs201(1),201(2),201(3), and201(4).

Referring still toFIG. 2, in the illustrated example, only the Wi-Fi AP201(3) is included in the sparse AP database130. Accordingly, in the illustrated example, the processor110may control the Wi-Fi radio120so as to detect each of Wi-Fi AP's201(1),201(2),201(3), and201(4), and make an identification of each Wi-Fi AP201(i) based on the identifying information broadcast by the Wi-Fi AP201(i) (e.g., the Wi-Fi AP201(i)'s SSID and/or MAC address). In the illustrated example, when the identification of each Wi-Fi AP201(i) is compared to information in the sparse AP database130, only the Wi-Fi AP201(3) will be recognized. Because the Wi-Fi AP201(3) is included in the sparse AP database130, the processor110may make a coarse determination of the location of the electronic device. More particularly, the processor110may be configured to look up, in the sparse AP database130, the known location of the Wi-Fi AP201(3) and make a determination from that location of the approximate location of the electronic device100.

In some implementations, the processor110may be configured to calculate an approximate distance between the electronic device100and the Wi-Fi AP201(3). For example, where it is known that the maximum range of the Wi-Fi AP2013is 50 m, the processor may be configured to make a coarse determination of a location of the electronic device100within a radius of 50 m from the known geo-coordinates of the Wi-Fi AP201(3). In some implementations, an actually received signal strength from the Wi-Fi AP201(3) may be compared to a reference value to determine that the electronic device100is within some particular radius less than 50 m from the known geo-coordinates of the Wi-Fi AP201(3).

As illustrated inFIG. 2, the present disclosure contemplates determination of location based on received signals from Wi-Fi AP's201, where, as few as only one of the Wi-Fi AP's201is identified in the sparse AP database130. It will be appreciated, however, that where two or more Wi-Fi AP's201are identified in the sparse AP database130a more accurate determination of location may be made using triangulation techniques.

Referring now toFIG. 3, a process300for providing location-based content to a user of an electronic device is illustrated. Process300may begin at block310, wherein one or more Wi-Fi AP's may be detected. As described above with reference to the implementation illustrated inFIG. 1, the Wi-Fi AP's may be detected by the Wi-Fi radio120under control of the processor110, for example. The Wi-Fi AP's may be detected by scanning with the Wi-Fi radio120. Where the Wi-Fi radio120is within range of one or more Wi-Fi AP's, identifying information of those Wi-Fi AP's, including SSID(s) and/or MAC address(es), for example, may be received.

As a result, identifying information of the detected Wi-Fi AP's may be obtained, at block320. The identifying information may be used by the processor110, which may access the sparse AP database130and make a comparison, at block330, of the identifying information of detected Wi-Fi AP(s) with identification information stored in the sparse AP database130. When the comparison results in a match being made between the identifying information of the detected Wi-Fi AP(s) and identification information stored in the sparse AP database130, the location of the detected Wi-Fi AP(s) may also be determined from the sparse AP database130.

Using the determined location, appropriate location-based content may be selected, block340, from the locally stored location-based content database140. The selected location-based content information may be outputted, bock350, to the user of the electronic device100by, for example presenting the information on a display of the device. Thus location-based content may be provided on the electronic device100, even though the electronic device100may not have connection with the Internet.

As an optional step, in some implementations, a determination of a location of the electronic device100relative to one or more of the detected Wi-Fi APs may be made, block335. For example, where two or more detected Wi-APs are included in the in the sparse AP database130, block335may include performing a triangulation calculation to obtain a determination of the location of the electronic device100. In some implementations, referring now toFIG. 4, the process300described above may be modified so as to make a determination whether or not there is a connection with the Internet, and to tailor selection of the location-based content, accordingly. More specifically, in the illustrated implementation, process400includes blocks310,320, and330as described above in connection with process300.

Following execution of block330, however, in accordance with process400, a determination may be made at block442, whether or not there is a connection with the Internet. If the determination at block442is that electronic device100is not connected to the Internet, the process may enter block444. At block444, the location-based content may be selected from locally stored location-based content database140.

If, on the other hand, the determination at block442is that electronic device100is connected to the Internet, the process400may enter block446. At block446, a determination may be made whether or not to access a remote location-based content server. If the determination is made not to access the remote location-based content server, the process may enter block444. Otherwise selected location-based content, appropriate to the location determination made at block330, may be downloaded over the Internet from the remote location-based content server, block448.

It should be noted that block448may be executed without necessarily accessing any location server or other remote database of Wi-Fi AP locations. Instead, it is contemplated that, because the location determination has already been made, Internet access described at block446may be made only with the location-based content server controlling access to the selected location-based content. For example, having made a determination of the location of the electronic device, and having determined that the electronic device is connected to the Internet, the processor110may be configured to display local weather or traffic information relating to the determined location, for example. The processor110may obtain such real-time information directly from the location-based content server without a need to first access the location server. Instead, the processor110may immediately forward the determined location to the location-based content server controlling access to the local weather or traffic information. As a result, latency is reduced because the electronic device is not required to first query the location server before accessing the location-based content server controlling access to the local weather or traffic information. Moreover, at least some users may be gratified that the present techniques, in some implementations, avoid transmitting information regarding the user's exact whereabouts to a server, but instead only send location information of an AP that may be some distance from the user. As a result, a greater degree of user privacy may be afforded.

As indicated above, the electronic device100may, at least from time to time, be connected with the Internet connection. Referring now toFIG. 5, when the electronic device100is communicatively coupled with the Internet, the electronic device100may update the sparse AP database130and/or the location-based content database140by way of an Internet connection. For example, a sparse AP database530may be remotely stored and maintained by, for example, a manufacturer or distributor of the electronic device100, or a third party. Remotely stored sparse database530may be communicatively coupled from time to time with location server database510, at which times content of the remotely stored sparse database530. The remotely stored sparse database530may include a subset of the AP information maintained by the location server database510. In some implementations, it is contemplated that the remotely stored sparse database530one including subset of APs within a multinational geographic region encompassing as much as the entire world. In some implementations, the sparse AP database130may include a portion of the remotely stored sparse database530, relates, for example, only to a smaller geographic region such as a single country or state. In other implementations, the sparse AP database130may include all or a large portion of the remotely stored sparse database530.

Referring still toFIG. 5, when the electronic device100is connected to the Internet, location-based content database140may also be updated. For example, a location-based content database540may be remotely stored and maintained by, for example, a manufacturer or distributor of the electronic device100, or a third party. Updates to the location-based content database140may be made automatically or upon a user request from content remotely stored in the location-based content database540.

FIGS. 6A, 6B and 6Cillustrate an example of developing a sparse subset of APs. Referring first toFIG. 6A, a view of a simplified geographic region610is illustrated. Within geographic region610, three starting points620have been identified. Starting points620are any locations that may be used to initialize determination of a sparse database. For example, starting points620may include PoI's, locations with a large number of APs, locations with a high population density, or locations where a large number of mobile devices are present. The geographic region610may also include numerous AP's630. In the illustrated example, there are more than one hundred AP's. It may be observed that there is a higher density of APs630proximate to each starting point620.

As indicated above, it is contemplated that creation of the sparse subset of APs may begin by selecting a first group of AP's that are near to, or approximately co-located with, a starting point. Accordingly, referring now toFIG. 6B, the sparse subset may be initially populated by a first group of three AP's, AP630(1), AP630(2), and AP630(3), where each AP630(i) in the first group is located proximate to a respective starting point620(i). It will be appreciated that each AP has an effective range within which an electronic device may receive a usable signal. The useful range will vary substantially from AP to AP, and depends for example, on the frequency band in which the AP operates, whether the AP is indoors or outdoors, and, if indoors, the nature of the construction of the building in which it is located. For purposes of the present simplified example, it is assumed that each Wi-Fi AP has a similar useful range of approximately 50 meter radius, as illustrated by outer circles631(i) surrounding each of AP's630(1), AP630(2), and AP630(3).

Referring now toFIG. 6C, the sparse subset may next be populated by selecting a second group of AP's such that, for each AP in the first group and the second group, a separation distance between the access point and an adjacent (nearest neighboring) access point is approximately 50 to 100 meter. Identifying information and location information for each AP in the resulting sparse subset of AP's, that includes a relatively small subset of a global catalog of known AP's, may be incorporated into AP database130at the time of manufacturing or sale of the electronic device100, or subsequently. The AP database130may also be updated from time to time, either automatically or in response to a user request. As a result of the above-described techniques, in the illustrated example, an electronic device100located almost anywhere within geographic region610will be able to detect a signal from at least one AP630for which identifying information and location information is included in the sparse subset, notwithstanding that less than 20% of the total number of AP's are included in the sparse subset. Consequently, the electronic device may be enabled to make a coarse determination of its location, using the techniques described above, using a reasonably sized, locally stored, AP database130.

For clarity of illustration,FIGS. 6A, 6B, and 6C, relate to a relatively small geographic area (less than 400 m×400 m), including only three starting points and fewer than 150 AP's. It will be appreciated that real use-case scenarios contemplate much larger geographic areas. For example, AP database130may include identifying information and location information for a sparse set of APs distributed across a geographic region equivalent to a metropolitan area, a county, a state or multi-state region, country or the entire world. Thus, the size of the geographic region contemplated by the present disclosure may be in the range of a few tens of square miles to tens of millions of square miles.

Other techniques may be used for developing a sparse subset of APs. More generally, the sparse subset of APs may be determined by selecting APs from a list to satisfy various criteria, such as to (i) maximize a geographic area over which an electronic device is able to detect at least one AP, (ii) maximize a number of devices that are able to detect at least one AP, (iii) maximize a number of people that able to detect at least one AP, or (iv) minimize a number of APs that an electronic device can detect at any particular location. In some embodiments, only one criterion may apply or multiple criteria may apply. In terms of maximizing or minimizing any criterion, a local maximum or minimum may be determined and a global maximum or minimum is not necessary. The number of access points selected for the sparse subset may be determined according to various threshold coverages. For example, the number of access points in the sparse subset may be determined to reach threshold coverage of geographic areas (e.g., 90% of the geographic area covered by the full AP database), a threshold population coverage (e.g., 90% of the population are able to access at least one AP in the sparse subset), or a threshold mobile device coverage (e.g., 90% of mobile devices are able to access at least one AP in the sparse subset).

For example a greedy algorithm may be used where we select a first AP that best matches a criterion (e.g., population density, number of APs, etc.). After the first AP is selected, a second AP is selected that best meets the criteria after the selection of the first AP and so forth. The selection process may terminate based on reaching a specified number of APs or meeting a coverage criteria. Other techniques may be used as well. For example, an objective function may be determined (e.g., relating to coverage criteria) and APs may be selected to maximize the objective function. Techniques known to one of skill in the art may be used to maximize the objective function, such as gradient descent, the expectation maximization algorithm, dynamic programming, or a simulated annealing algorithm.

Referring toFIG. 7, a process for populating a locally stored sparse AP database will be described. Process700may begin by selecting a geographic region of interest, block710. The geographic region may correspond to a metropolitan area, a county, state, country or continent, for example. The geographic region may include a large number of Wi-Fi access points, for which identifying information and location information is maintained by one or more location server databases. Location server databases of a type contemplated for use with the present techniques have been developed or proposed by Google, Skyhook Wireless, and Navizon, for example. In at least portions of the geographic region (e.g., urban and suburban areas) the Wi-Fi access points are sufficiently densely distributed that the location server database is able to allow a client electronic device, accessing the location server database, to obtain location information and provide location-based services within those areas.

At block720, location and identifying information for a selected fraction of Wi-Fi APs from the location server database may be obtained. It is contemplated that the selected fraction may constitute less than half of the APs included in a location server database. In some implementations, the selected fraction may constitute less than 1% of the APs included in the location server database. In some implementations, the selected fraction of Wi-Fi APs may be selected so as to ensure that, in aggregate, they enable an electronic device that is not connected to the location server to provide location based services in approximately the same portions of the geographic region where the location server database is able to allow a client electronic device to obtain location information.

The selected fraction may be chosen, in some implementations, using the techniques described above in connection withFIG. 6. Alternatively or in addition, a number of other techniques may be contemplated. In some implementations, for example, at least some of the selected fraction of Wi-Fi APs may be selected as a result of being in a densely populated area or proximate to a transportation corridor, irrespective of locations of identified points of interest. In some implementations, at least some of the selected fraction of Wi-Fi APs may be selected as part of a contiguous array. In some implementations, at least some of the selected fraction of Wi-Fi APs are selected so as to preferentially include Wi-Fi APs that are proximate to population centers and/or to transportation corridors connecting population centers within the geographic region.

Referring still toFIG. 7a locally stored sparse AP database may be populated with location and identifying information for the selected fraction of Wi-Fi access points. The locally stored sparse AP database may be or include the sparse AP database130described above in connection withFIG. 1.

FIG. 8illustrates a block diagram of an example of an electronic device with which the presently disclosed techniques may be employed. Device800includes one or more single or multi-core processors802configured to execute stored instructions (e.g., in device memory820). Device800may also include one or more input/output (I/O) interface(s)804to allow the device to communicate with other devices. I/O interfaces804may include, for example, an inter-integrated circuit (I2C) interface, a serial peripheral interface (SPI) bus, a universal serial bus (USB), an RS-232 interface, a media device interface, and so forth. I/O interface(s)804is coupled to one or more I/O devices806. The I/O device(s)806may include one or more displays806(1), one or more haptic generators806(2), a touch sensor array806(3), one or more accelerometers806(4), one or more image capture systems806(5), one or more motion sensors806(6), one or more orientation sensors806(7), microphones, speakers, and so forth. The one or more displays806(1) are configured to provide visual output to the user and may comprise any of a variety of display types including, for example, any type of reflective or transmissive display. Touch sensor array806(3) may be a capacitive sensor array having a matrix of conductors that are scanned to determine, for example, the location, duration, speed and direction of touch events within the matrix based on changes in electrical capacitance.

Device800may also include one or more communication interfaces808configured to provide communications between the device and other devices. Such communication interface(s)808may be used to connect to cellular networks, personal area networks (PANs), local area networks (LANs), wide area networks (WANs), and so forth. For example, communications interfaces808may include radio frequency modules for a 3G or 4G cellular network, a Wi-Fi LAN and a Bluetooth PAN. Device800also includes one or more buses or other internal communications hardware or software that allow for the transfer of data and instructions between the various modules and components of the device.

Device800may also include one or more memories (e.g., memory810). Memory810may include non-transitory computer-readable storage media that may be any of a wide variety of types of volatile and non-volatile storage media including, for example, electronic storage media, magnetic storage media, optical storage media, quantum storage media, mechanical storage media, and so forth. Memory810provides storage for computer readable instructions, data structures, program modules and other data for the operation of device800. Memory810may include at least one operating system (OS) module812configured to manage hardware resources such as I/O interfaces804and provide various services to applications or modules executing on processor(s)802. Memory810may also include a user interface module816, a content rendering module818, and other modules.

User interface module816is configured to present a user interface to the user that may include visual, audible, and/or haptic components. For example, user interface module816may be configured to present, in conjunction with content rendering module818, an image on display806(1). User interface module816may also be configured to process inputs of applied forces (e.g., touch events, swipes, etc.) at particular locations on the display to take particular actions such as, for example, paging forward or backward through paged content, zooming in and out, panning, etc.

Memory810may also include device memory820to store a wide variety of instructions and information using any of a variety of formats including, for example, flat files, databases, linked lists, trees, or other data structures. In some implementations, a portion of device memory820may be distributed across one or more other devices including servers, network attached storage devices, and so forth.

The presently disclosed techniques may include computer program instructions to adaptively manage power draw from the battery of the peripheral device based on a real-time situational awareness may be implemented in a variety of ways. For example, they could be part of the native display controller logic of device800. Alternatively, they could be implemented as a separate application that may be downloaded to the device. In another alternative, where device800is a thin client, at least some of the instructions may be hosted on a remote platform. It will also be understood that device800ofFIG. 8is merely an example of a device with which various implementations of the present invention may be practiced, and that a wide variety of other devices types may also be used. The scope of the invention should therefore not be limited by reference to device-specific details discussed above.

Thus, techniques enabling location-based content to be available on a mobile electronic device even in the absence of an active Internet connection have been described. Examples of some of these implementations are illustrated in the accompanying drawings, and specific details are set forth in order to provide a thorough understanding thereof. It should be noted that implementations may be practiced without some of these specific details. In addition, well known features may not have been described in detail to promote clarity. Finally, although various advantages have been discussed herein with reference to various implementations, it will be understood that the scope of the invention should not be limited by reference to such advantages. Rather, the scope of the invention should be determined with reference to the appended claims.