HK1168709A - Location histories for location aware devices - Google Patents
Location histories for location aware devices Download PDFInfo
- Publication number
- HK1168709A HK1168709A HK12109287.9A HK12109287A HK1168709A HK 1168709 A HK1168709 A HK 1168709A HK 12109287 A HK12109287 A HK 12109287A HK 1168709 A HK1168709 A HK 1168709A
- Authority
- HK
- Hong Kong
- Prior art keywords
- location
- database
- network information
- network
- aware device
- Prior art date
Links
Description
Technical Field
The present invention relates generally to location aware mobile devices.
Background
Conventional mobile devices are typically dedicated to executing a particular application. For example, mobile phones provide telephone services, Personal Digital Assistants (PDAs) provide a way to organize addresses, contacts, and notes, media players play content, email devices provide email communications, and so forth. Modern mobile devices may include two or more of these applications. Due to the size limitations of typical mobile devices, such mobile devices may need to rely on a network or other remote service to support the multiple applications. For example, a map service may provide a map to a mobile device over a network, which may be used with one or more applications running on the mobile device. The introduction of positioning systems integrated or coupled with mobile devices provides additional opportunities for providing location-based services.
Modern positioning systems include satellite-based positioning systems such as Global Positioning System (GPS), cellular network positioning based on "cell ID", and WiFi positioning technology based on WiFi networks. Satellite based positioning systems tend to be the most accurate. However, these satellite systems often consume more power than other positioning systems and rely on the visibility of multiple satellites to determine a position estimate.
Disclosure of Invention
A location-aware mobile device may include a baseband processor for communicating with one or more communication networks, such as a cellular network or a WiFi network. In some implementations, the baseband processor may collect network information over time. The network information may be converted to estimated location coordinates (e.g., latitude, longitude, altitude) of the location-aware device. The location coordinates may be stored on a location-aware device or a location history database accessible over a network. A user or application may query the location history database with a timestamp or other query to retrieve all or part of the location history for display in the map view. In some implementations, the size and "freshness" of the location history database can be managed by eliminating duplicate entries in the database and/or removing older entries. The location history may be used to construct a travel timeline for the location-aware device. The travel timeline may be displayed in a map view or used by a location-aware application running on a network or on a location-aware device. In some implementations, an Application Programming Interface (API) may be used by an application to query a location history database.
In some implementations, the location history may allow a user to tag photos or other content taken by the device and synchronize the content with the location history using a timestamp. This may allow a user to augment the timeline with content, for example.
In some implementations, the network information can include a transmitter Identifier (ID). For example, the cell ID may be tracked and recorded. The cell ID may be mapped to a corresponding cell tower location, which may be used to provide estimated location coordinates of the location aware device. When the location history is requested by a user or application (e.g., through an API), the transmitter ID may be converted to location coordinates of the location-aware device, which may be reverse geocoded to a map location for display on a map view or for other purposes. In other implementations, the network information may include WiFi scan data (e.g., access point ID) that may be used to determine location coordinates of the location aware device, which may be reverse geocoded for display on a map view. In some implementations, the network information may be sent to a network server, which may convert the network information into location coordinates, which may be returned to the location-aware device for processing by the location-aware application.
In some implementations, other information related to different events may be recorded by the location-aware device and associated with the location history. Other information may be displayed or otherwise made accessible to the user in a map view or other application. Other information and location history may be part of the user's personal "diary," which may be queried later.
Drawings
Fig. 1 is a block diagram of an example position determination system according to some implementations.
FIG. 2 is a flow diagram of an exemplary process for generating and storing location history data for a location-aware device according to some implementations.
FIG. 3A illustrates an exemplary home screen of a location-aware device capable of storing and processing location history data, according to some implementations;
FIG. 3B illustrates an exemplary search interface of a location-aware device capable of retrieving and displaying location history data according to some implementations.
FIG. 4 is a block diagram of an example network operating environment for the location-aware device of FIG. 1 according to some implementations.
FIG. 5 is a block diagram of an exemplary architecture of a location-aware device capable of storing and processing location history data according to some implementations.
Detailed Description
Overview of the System
Fig. 1 is a block diagram of an exemplary position determination system 100. In some implementations, the location determination system 100 can include a location aware device 102, a cell tower transmitter 104, an access point transmitter 114 (e.g., a WiFi beacon), and a location server 110. Cell tower transmitter 104 may be coupled to a wide area network 108 (e.g., the internet) through gateway 106, and access point transmitter 114 may be coupled to network 108 through a wired and/or wireless communication link.
The location aware device 102 may be any device capable of determining the current geographic location of the location aware device 102 by communicating with a positioning system such as GPS, a cellular network, a WiFi network, and any other technology that may be used to provide an actual location or estimate a location of the location aware device 102. Some examples of location-aware devices include, but are not limited to: a handheld computer, a personal digital assistant, a cellular telephone, a network appliance, a camera, a smart phone, an Enhanced General Packet Radio Service (EGPRS) mobile phone, a network base station, a media player, a navigation device, an email device, a game console, or a combination of any two or more of these or other data processing devices. The location aware device 102 may include a storage device 118 (e.g., flash memory, hard disk) for storing a location history Database (DB) 116.
Location server 110 may include one or more server computers operated by a location service provider. Location server 110 may deliver location information to location aware device 102.
In some implementations, the location aware device 102 collects and stores network information associated with transmitter detection events. The network information may include a transmitter Identifier (ID) of the detected transmitter and a timestamp marking the time of the transmitter detection event. Some examples of transmitter IDs include, but are not limited to, a cell ID and an access point transmitter ID (e.g., a Media Access Control (MAC) address) provided by a cell tower transmitter (e.g., a transmitter on a GSM mast) in a cellular communication network. A wireless Access Point (AP) may be a hardware device or computer software that serves as a communications hub for users of wireless devices to connect to a wired LAN.
The sequence of transmitter IDs may be related to the known geographic location of the corresponding transmitter. The geographical location of the transmitter may be used to calculate estimated location coordinates (e.g., latitude, longitude, altitude) of the location aware device 102 over a period of time, resulting in a location history of the location aware device 102. For example, the sequence of transmitter IDs may be compared to a reference database (e.g., a cell ID database, a WiFi reference database) that maps or correlates the transmitter IDs to location coordinates of corresponding transmitters and calculate estimated location coordinates of the location aware device 102 based at least in part on the location coordinates of the corresponding transmitters. The mapping may be performed by a processor of the location aware device 102 if a reference database is available on the location aware device 102. Alternatively, the transmitter ID may be sent to the location server 110, and the location server 110 may store the transmitter location coordinates in a remote reference database in the storage device 112. Location server 110 may map or correlate the transmitter IDs to location coordinates of the corresponding transmitters, which may be transmitted back to location aware device 102 via network 108 or one or more wireless communication links. The location coordinates may be reverse geocoded as a map location (e.g., street location). The map location may be represented by a marker (e.g., a pushpin icon) on a map view displayed by the location-aware device 102, or for other purposes of the location-aware application.
The location coordinates and associated time stamps may be stored in the location history database 116 and/or the storage device 112 for later retrieval and processing by a user or application. The location coordinates and timestamps may be used to construct a timeline in a map view that shows a history of the location-aware device 102. In some implementations, the timestamp associated with the location coordinates may be used to query the database 116 or a remote database on the storage device 112 to obtain location history data in response to a query from a user or application, as described with reference to fig. 3B.
In some implementations, the location history database 116 may be tied or associated to other recorded data (e.g., using relational database associations). A data logging event occurs when data associated with the event is stored in the location-aware device 102 or on a network storage device (e.g., storage device 112). Some examples of logging data include, but are not limited to: data associated with a picture taking event, data associated with a financial transaction, sensor output data, data associated with a communication event (e.g., receipt of a phone call or instant message), data associated with a network event (e.g., a connection or disconnection, wireless or wired, to a network), and so forth.
In some implementations, the logged data, along with location history data and corresponding timestamps, may be used to create and store a personal "diary" of the user of the location-aware device 102. In the example system 100, the logging data or "diary" may be stored on the location-aware device 102 or on the storage device 112 via the location server 110.
In some implementations, the logged data can be displayed with corresponding location markers on the map view, as described with reference to fig. 3B. The data may be displayed in a map view or other user interface, and/or a link (e.g., hyperlink) or other reference may be displayed with a tag to allow access to the recorded data.
In some implementations, the transmitter detection event data (e.g., transmitter ID) is received while the location awareness device 102 is operating in a low power mode. The low power mode may occur, for example, when a satellite positioning receiver (e.g., a GPS receiver) of the location aware device 102 is powered down to conserve power. In the low power mode, a power efficient processor (e.g., a 3G baseband processor) may accumulate and store transmitter IDs for use in calculating location history data. The baseband processor is used in a Radio Frequency (RF) subsystem such as RF subsystem 524 shown in fig. 5. Baseband processors are used in, for example, GSM (global system for mobile communications), GPRS (general packet radio service), and EGPRS (enhanced general packet radio service) communication devices, such as cellular mobile phones, to transmit and receive radio signals.
During reception of the radio signal, the RF subsystem receives the radio signal, converts the radio signal to a baseband signal and sends the baseband signal to the baseband processor. The baseband processor then processes the received baseband signal and decodes various data, including the transmitter ID (e.g., cell ID). In many location-aware mobile devices, the GPS receiver consumes much more power than the baseband processor. Thus, the collection and storage of transmitter IDs can be accomplished by the baseband processor without the high power consumption associated with, for example, a GPS receiver.
The location history may be calculated from the transmitter IDs collected with the low power baseband processor. The transmitter ID may be used to reconstruct a location history timeline for display in a map view. The location history may be tied or correlated to data from other recorded events to allow the data to be displayed or otherwise made accessible to the user in a map view application or other application. The sequence of locations traversed by the location-aware device 102 in the past may be displayed in the map view as a timeline, the span of which may be specified by a user or application-generated query, as described with reference to fig. 3B.
Example location history processing
FIG. 2 is a flow diagram of an exemplary process 200 for generating and storing location history data for a location-aware device. Process 200 will be described as being performed by location aware device 102 as described with reference to FIG. 1.
In some implementations, if the location aware device is in a low power or sleep mode for a period of time (202), the location aware device can be configured to receive a transmitter ID within communication range of the location aware device (204). The transmitter ID may be collected periodically (e.g., every 10 minutes) and/or in response to a triggering event (e.g., every time a user or application requests location data).
In a low power or sleep mode, the satellite positioning receiver (e.g., a GPS receiver) may be powered down to save power or because there are not a sufficient number of satellites available to compute a navigation solution (e.g., the GPS receiver is operated indoors). In the low power mode, the transmitter ID may be collected by, for example, a baseband processor that typically consumes less power than, for example, a GPS receiver. In some implementations, transmitter IDs may be collected even if the location aware device is operating in a normal power mode. This situation may occur on location aware devices that do not include a satellite positioning system.
In some cases, the same transmitter ID may be received multiple times by the location aware device in a short period of time, potentially creating duplicate entries in the location history database. This may occur, for example, in situations where the device remains stationary near the transmitter. In such a case, duplicate entries may be detected from the location history database and deleted. Referring to process 200, if a new transmitter ID is received (206) and the location history database is not full (208) then the transmitter ID and corresponding timestamp may be stored in the location history database (212). In some implementations, if the transmitter ID was received in the past (206) and stored in the location history database, process 200 may update the timestamp of the entry (207) and return to step (202).
If a new transmitter ID is received (206) and the location history database is full (208), the entry from the location history database may be removed from the location history database to make room for the new entry (210). In this manner, step (210) ensures that the size and "freshness" of the location history database can be managed. Any suitable database management policy may be implemented to determine which location entry to remove from the database. For example, in one implementation, an "aging" algorithm may be used to remove the oldest entries based on a comparison of the timestamps. In another implementation, all or a portion of the location history database may be purged whenever the location aware device is powered down for a period of time. In some implementations, a user of the location device may be provided with a user interface that allows the user to manually clear the location history database.
In some implementations, a single accurate location (e.g., a single transmitter ID) or a small number of transmitter IDs representing a defined time span may be stored in the location history database to reduce the size of the location history database. For example, the values for work and commute from home for a week may be represented by a single or small number of transmitter IDs, since the route from home to work does not change during the work cycle. This option may be specified by the user through a user interface that allows the user to specify the frequency of transmitter ID recordings and/or to specify the period of time during which recordings will or will not be made.
Other implementations may employ other means to reduce the size of the location history database, such as various data compression techniques. For example, a repeating pattern of locations may be encoded as a shorter symbol or set of symbols within the database, and a look-up table may be used to map the symbols to the set of locations.
FIG. 3A illustrates an exemplary home screen 300 of a location-aware device 102 capable of storing and processing location history data. In some implementations, the location-aware device 102 can be a mobile phone. The device 102 may include a touch sensitive display 302 or touch pad capable of receiving touch inputs and gestures. In the illustrated example, the home screen 300 may include a number of icons that may be touched by a user to invoke an application. For example, if the user touches icon 303, the location history application may be invoked and a location history user interface may be displayed.
FIG. 3B illustrates an exemplary search interface 305 of the location-aware device 102. The search interface 305 may include a search box 304, which the user may use to enter a time span of the location history. In the example shown, the user inputs the time span 10:00 am to 12:00 pm. In some implementations, a time span can be used to query the location history database 116. The location entry responsive to the query may be used to display a marker on the map view when the user touches the location history button 332. In the illustrated example, the markers 310, 312, 314, 316, 318, 320, 322, 324, and 326 correspond to locations in the location history database 116 at 10:00 am to 12:00 pm in response to a time span query. Each tag may have callouts 328 for displaying information and for providing user interface elements 330 for accessing other recorded data. Other recorded data may include, but is not limited to: photos, videos, text, hyperlinks, click-to-call phone numbers, advertisements, and the like.
Example network operating Environment
FIG. 4 is a block diagram of an example network operating environment 400 for the location-aware device 102 of FIG. 1. In fig. 4, location aware devices 402a and 402b may each represent location aware device 102. The devices 402a and 402b may communicate data, for example, over one or more wired and/or wireless networks 410. For example, a wireless network 412 (e.g., a cellular network) may communicate with a Wide Area Network (WAN)414, such as the internet, by using a gateway 416. Likewise, an access device 418, such as an 802.11g wireless access device, may provide communication access to the wide area network 414. In some implementations, both voice and data communications can be established over the wireless network 412 and the access device 418. For example, device 402a may place and receive phone calls (e.g., using VoIP protocols), send and receive email messages (e.g., using POP3 protocols), and retrieve electronic documents and/or streams, such as web pages, photographs, and videos, over wireless network 412, gateway 416, and wide area network 414 (e.g., using TCP/IP or UDP protocols). Likewise, in some implementations, device 402b may place and receive phone calls, send and receive email messages, and retrieve electronic documents through access device 418 and wide area network 414. In some implementations, the devices 402a or 402b may be physically connected to the access device 418 using one or more cables and the access device 418 may be a personal computer. In this configuration, device 402a or 402b may be referred to as a "tethered" (teter) system. The connection to the wired or wireless network may allow the devices to share location history with each other or with remote services, such as navigation service 430.
The devices 402a and 402b may also establish communication by other means. For example, the wireless device 402a may communicate with other devices (e.g., other devices 402a or 402b, cellular phones, etc.) over the wireless network 412. Likewise, devices 402a and 402b may be enabled by using, for example, BluetoothTMOne or more communication subsystems, such as a communication device, establish peer-to-peer communications 420, such as a personal area network. Other communication protocols and techniques may also be implemented.
The device 402a or 402b may communicate with one or more services 430, 440, 450, 460, and 470, e.g., over one or more wired and/or wireless networks 410. For example, one or more navigation services 430 may provide navigation information, such as map information, location information, route information, and other information, to devices 402a or 402 b. For example, a user of device 402b may invoke a map function by pressing a map icon on a top-level graphical user interface (e.g., home screen 304 shown in FIG. 3A), and may request and receive maps, request and receive route directions, or request and receive a list of businesses near a particular location.
The navigation service 430 may receive the transmitter ID, use the reference database to perform the conversion to location coordinates and provide the labeled map view to the location-aware device for display or for other purposes. In some implementations, the navigation service 430 may provide an online facility (e.g., a website) for users to share location history or network information. The navigation service 430 may use the transmitter ID to update or improve the accuracy of the reference database.
Messaging service 440 may, for example, provide email and/or other messaging services. The media service 450 may, for example, provide access to media files such as song files, audio books, movie files, video clips, and other media data. In some implementations, separate audio and video services (not shown) may provide access to the corresponding types of media files. The synchronization service 460 may, for example, perform a synchronization service (e.g., synchronizing files). The activation service 470 may, for example, perform an activation process for activating the device 402a or 402 b. Other services may also be provided, including a software update service that automatically determines whether a software update exists for the device 402a or 402b and then downloads the software update to the device 402a or 402b, where it may be manually or automatically unpacked and/or installed.
The devices 402a or 402b may also access other data and content over one or more wired and/or wireless networks 410. For example, the device 402a or 402b may access a content publisher such as a news site, an RSS feed, a website, a blog, a social networking site, a developer network, and so forth. Such access may be provided by invoking a web browsing function or application (e.g., a browser) in response to a user, for example, touching a web object.
Example Mobile device architecture
Fig. 5 is a block diagram of an example architecture 500 of the location-aware device 102 of fig. 1. Device 102 may include a memory interface 502, one or more data processors, image processors and/or central processing units 504, and a peripheral interface 506. The memory interface 502, the one or more processors 504, and/or the peripherals interface 506 can be separate components and can be integrated into one or more integrated circuits. The various components in device 102 may be coupled by one or more communication buses or signal lines.
Sensors, devices, and subsystems can be coupled to peripherals interface 506 to facilitate multiple functions. For example, motion sensors 510, light sensors 512, proximity sensors 514 may be coupled to the peripheral interface 506 to assist with directional, lighting, and proximity functions. Other sensors 516, such as a positioning system (e.g., a GPS receiver), temperature sensors, biometric sensors, magnetic compasses, FM or satellite radio or other sensing devices, may also be connected to the peripheral interface 506 to assist in related functions.
Camera subsystem 520 and optical sensor 522 (e.g., a Charge Coupled Device (CCD) or Complementary Metal Oxide Semiconductor (CMOS)) optical sensor) may be used to assist camera functions such as recording photographs and video clips.
Communication functions may be facilitated by one or more wireless communication subsystems 524, which may include radio frequency receivers and transmitters and/or optical (e.g., optical)Infrared) receiver and transmitter. The specific design and implementation of communication subsystem 524 may be dependent upon the communication network(s) through which device 102 is to operate. For example, device 102 may include a communication subsystem 524 designed to communicate over a GSM network, GPRS network, EDGE network, Wi-Fi or WiMax network, and BluetoothTMThe network operates. In particular, communication subsystem 524 may include a hosting protocol such that device 102 may be configured as a base station for other wireless devices.
The audio subsystem 526 may be coupled to a speaker 528 and a microphone 530 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.
The I/O subsystem 540 may include a touchscreen controller 542 and/or other input controller(s) 544. The touch screen controller 542 may be coupled to a touch screen 546. The touch screen 546 and the touch screen controller 542 can, for example, detect touches and movements or breaks thereof using a variety of touch sensitive technologies including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen 546.
Other input controller(s) 544 can be coupled to other input/control devices 548, such as one or more buttons, rocker switches, thumbwheels, infrared ports, USB ports, and/or pointer devices such as a stylus. The one or more buttons (not shown) may include up/down buttons for volume control of the speaker 528 and/or the microphone 530.
In one implementation, pressing the button for a first duration may unlock the touch screen 546; and pressing the button for a second duration that is longer than the first duration may cause the device 102 to power on or off. The user may be able to customize the functionality of one or more of the buttons. The touch screen 546 may, for example, also be used to implement virtual or soft buttons and/or a keyboard. In addition to the touch screen 546, the device 102 may also include a touch pad.
In some implementations, the device 102 can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the device 102 may include a device such as an iPodTMSuch as the function of an MP3 player. Thus, device 102 may include an iPod with an iPodTMCompatible connectors. Other input/output and control devices may also be used.
The memory interface 502 may be coupled to a memory 550. The memory 550 may include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory 550 may store an operating system 552 such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. The operating system 552 may include instructions for handling basic system services and for performing hardware independent tasks. In some implementations, the operating system 552 can be a kernel (e.g., UNIX kernel).
The memory 550 may also store communication instructions 554 to facilitate communication with one or more additional devices, one or more computers, and/or one or more servers. Memory 550 may include graphical user interface instructions 556 to facilitate graphical user interface processing as described with reference to fig. 1-4; sensor processing instructions 558 for assisting sensor-related processes and functions; phone instructions 560 to facilitate phone-related processes and functions; electronic messaging instructions 562 to facilitate electronic messaging-related processes and functions; web browsing instructions 564 to facilitate web browsing-based processes and functions; media processing instructions 566 for facilitating media processing-related processes and functions; GPS/navigation instructions 568 to assist with GPS and navigation-related processes and functions; camera instructions 570 to facilitate camera-related processes and functions; and a location history module 572 and a location history database 574 to facilitate the processes and functions described with reference to fig. 1-4. Memory 550 may also store other software instructions (not shown), such as network video instructions to facilitate network video-related processes and functions; and/or online shopping instructions to facilitate online shopping-related processes and functions. In some implementations, the media processing instructions 566 are divided into audio processing instructions and video processing instructions to facilitate audio processing-related processes and functions and video processing-related processes and functions, respectively. An activation record and an International Mobile Equipment Identity (IMEI) or similar hardware identifier may also be stored in the memory 550.
Each of the above identified instructions and applications may correspond to a set of instructions for performing one or more functions described above. The instructions need not be implemented as separate software programs, procedures or modules. Memory 550 may include more instructions or fewer instructions. Further, various functions of the device 102 may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
The disclosed and other embodiments and functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, or in combinations of one or more of them, including the structures disclosed in this specification and their structural equivalents. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" includes all apparatus, devices, and machines for data processing, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software application, script, or code) can be written in the form of a programming language, including compiled or interpreted languages, and it can be implemented in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that also holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by: one or more programmable processors execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include (or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such a device. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, the disclosed embodiments can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user, for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
The disclosed embodiments can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation disclosed herein), or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or means of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), such as the Internet.
The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Although this specification includes many specifics, these should not be construed as limitations on the scope of what may be claimed or claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable combination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features of a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are illustrated in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In some cases, multitasking and parallel processing may be beneficial. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Specific embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes illustrated in the figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some implementations, multitasking and parallel processing may be beneficial.
Claims (26)
1. A computer-implemented method performed by a location-aware device, the method comprising:
configuring a processor of the location-aware device to collect network information broadcast from a number of network transmitters over a span of time; and
storing the network information and corresponding timestamps in a database as location history data.
2. The method of claim 1, further comprising:
receiving a request for a location history; and
in response to the request, converting the network information stored in the database into location coordinates.
3. The method of claim 1, wherein configuring the processor to collect network information comprises:
the baseband processor is configured to collect the transmitter identifier.
4. The method of claim 3, wherein the network information is provided over a cellular network or a wireless local area network.
5. The method of claim 4, wherein the network information is provided over a cellular network and the transmitter identifier is a cell identifier.
6. The method of claim 4, wherein the network information is provided over a wireless local area network and the transmitter identifier is a Media Access Control (MAC) address of an access point device.
7. The method of claim 1, further comprising:
determining that a satellite positioning system is unavailable; and
configuring the processor of the location-aware device to collect network information broadcast from a number of network transmitters over the span of time.
8. The method of claim 1, wherein the database is included in the location-aware device and is configured to be searchable by a user of the location-aware device.
9. The method of claim 8, wherein the database is configured to be queried for at least a portion of the location history data.
10. The method of claim 9, further comprising:
querying the database for at least a portion of the location history data;
retrieving network information from the database in response to the query;
converting the network information into location coordinates;
displaying a map view; and
displaying a marker on the map view as a timeline according to the location coordinates, the marker indicating a location history of the location-aware device over the span of time.
11. The method of claim 1, further comprising:
storing event data relating to events occurring over the time span; and
associating the event information with the location history data.
12. The method of claim 11, further comprising:
querying the database for at least a portion of the location history data;
retrieving network information from the database in response to the query;
converting the network information into location coordinates;
displaying a map view;
displaying a marker on the map view as a timeline according to the location coordinates, the marker indicating a location history of the location-aware device over the span of time; and
displaying the event data on the map view such that the event data is visually associated with one or more markers.
13. The method of claim 12, further comprising:
displaying a user interface element on the map view, the user interface element operable to provide access to at least some event data.
14. A system, comprising:
a memory configured to store a database; and
a processor coupled to the memory, the processor configured to collect network information broadcast from a number of network transmitters over a span of time; storing the network information and corresponding timestamps as location history data in a database; receiving a request for a location history; and in response to the request, converting the network information stored in the database into location coordinates.
15. The system of claim 14, further comprising:
a baseband processor configured to collect the transmitter identifier.
16. The system of claim 15, wherein the network information is provided through a cellular network or a wireless local area network.
17. The system of claim 16, wherein the network information is provided over a cellular network and the transmitter identifier is a cell identifier.
18. The system of claim 16, wherein the network information is provided over a wireless local area network and the transmitter identifier is a Media Access Control (MAC) address of an access point device.
19. The system of claim 14, wherein the processor is configured to:
determining that a satellite positioning system is unavailable; and
configuring the processor of the location-aware device to collect network information broadcast from a number of network transmitters over the span of time.
20. The system of claim 14, wherein the database is configured to be searchable by a user of the location-aware device.
21. The system of claim 20, wherein the database is configured to be queried for at least a portion of the location history data.
22. The system of claim 14, wherein the processor is configured to:
querying the database for at least a portion of the location history data;
retrieving network information from the database in response to the query;
converting the network information into location coordinates;
displaying a map view; and
displaying a marker on the map view as a timeline according to the location coordinates, the marker indicating a location history of the location-aware device over the span of time.
23. The system of claim 14, wherein the processor is configured to:
storing event data relating to events occurring over the time span; and
associating the event information with the location history data.
24. The system of claim 23, wherein the processor is configured to:
querying the database for at least a portion of the location history data;
displaying a map view;
retrieving network information from the database in response to the query;
converting the network information into location coordinates;
displaying a marker on the map view as a timeline according to the location coordinates, the marker indicating a location history of the location-aware device over the span of time; and
displaying the event data on the map view such that the event data is visually associated with one or more markers.
25. The system of claim 24, wherein the processor is configured to:
displaying a user interface element on the map view, the user interface element for providing access to at least some event data.
26. A computer-implemented method performed by a location-aware device, the method comprising:
configuring a processor of the location-aware device to collect transmitter identifiers broadcast from a number of network transmitters over a span of time;
converting the transmitter identifier to location coordinates;
storing the location coordinates and corresponding timestamps in a database of the location-aware device;
receiving a search query specifying a search time span;
in response to the search query, generating a map view including indicia identifying a location history of the location-aware device over the search time span, the location history based on location coordinates corresponding to timestamps within the search time span; and
displaying the map view and indicia on a display of the location-aware device.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/553,534 | 2009-09-03 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1168709A true HK1168709A (en) | 2013-01-04 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8611326B2 (en) | Location histories for location aware devices | |
| US8639685B2 (en) | Journaling on mobile devices | |
| US8803737B2 (en) | Location determination | |
| US8694026B2 (en) | Location based services | |
| CN104394506B (en) | Place update based on push | |
| US9702721B2 (en) | Map service with network-based query for search | |
| US8275352B2 (en) | Location-based emergency information | |
| CN102066969B (en) | Method and device for location determination | |
| US20090325603A1 (en) | Location sharing | |
| US20130244690A1 (en) | Task Management Based on Travel Distance | |
| US8965693B2 (en) | Geocoded data detection and user interfaces for same | |
| EP2588971A1 (en) | Method and apparatus for context-based grouping | |
| CN107612974B (en) | Information recommendation method and device, mobile terminal and storage medium | |
| JP6077231B2 (en) | Information acquisition method and apparatus for user terminal in communication system | |
| WO2018171105A1 (en) | Alarm notification method and terminal device | |
| US20140155099A1 (en) | Method and apparatus for displaying location information of call service area in mobile terminal | |
| CN106993327B (en) | Network positioning method and device and computer equipment | |
| HK1168709A (en) | Location histories for location aware devices | |
| US20250274900A1 (en) | Managing wi-fi scans using measurements from other user devices | |
| CN115208851B (en) | Instant messaging method, instant messaging client, electronic device and storage medium |