Several systems may allow users to rate points of interest (POIs). Some systems may allow users to search for the points of interest based on the user's current location. However, in order for a user to rate a point of interest that the user is visiting, the user may have to take the time and effort to pull out a mobile device, search for the POI, and rate the POI. Frequently the user is no longer at the POI when she has the time to input a rating. The user may need to search through numerous possibilities in order to recall the POI that the user has visited in the past. The POI may be a branch of a chain with many similarly or identically named stores near the location that the user has been at. In that case (and others), it may be difficult for the user to identify the particular point of interest, at which the user has been some time ago.
According to one aspect of the subject technology, a system for rating points of interest (POIs) using a mobile device location history is provided. The system may include a communication module, memory, an identification module, a location history module, and an interface module. The communication module may be configured to receive location information for a plurality of locations at which the mobile device was present from a mobile device associated with a user. The memory may store a database of location information based on the plurality of location information received from the one or more mobile devices. The identification module may be configured to identify, using the received location information, POIs associated with some of the locations. The location history module may be configured to generate a location history based on the identified POIs. The location history may comprise data objects identifying the identified POIs. The communication module may be configured to transmit to a device authorized by the user, one or more portions of the location history and instructions for causing the authorized device to display a graphical user interface and prompt the user to provide responses to POIs in the location history.
According to another aspect of the subject technology, a method for rating points of interest (POIs) using a mobile device location history is provided. According to the method, location information for a plurality of locations at which the mobile device was present may be received from a mobile device associated with a user. Using the received location information, for some location information of the multiple location information, POIs associated with the location information may be identified. A location history based on the identified POIs may be generated. The location history may comprise data objects identifying the identified POIs. At least a portion of the location history and instructions for causing the authorized device to display a graphical user interface and prompt the user to provide responses to POIs in the location history may be transmitted to a device authorized by the user of the mobile device.
According to yet another aspect of the subject technology, a non-transitory machine-readable medium including instructions stored therein, which when executed by a machine, cause the machine to perform operations for rating points of interest (POIs) using a mobile device location history is provided. The operations may include receiving location information for a plurality of locations at which the mobile device was present from a mobile device associated with a user. Using the received location information, for some location information of the multiple location information, POIs associated with the location information may be identified. The operations may also include generating a location history based on the identified POIs, the location history comprising data objects identifying the identified POIs. The operations may further include transmitting, by the server, to a device authorized by the user, one or more portions of the location history and instructions for causing the authorized device to display a graphical user interface and prompt the user to provide responses to POIs in the location history.
According to yet another aspect of the subject technology, a method for rating points of interest (POIs) using mobile device location history is provided. According to the method, a plurality of location information may be received. A user interface may be displayed. The user interface may include a rating interface that can enable rating of one or more POIs of a POI list. The rating interface may be generated based on a location history. The POI list may include one or more POIs visited by a user of the mobile device. For some location information of the plurality of location information, POIs associated with the location information may be identified. The location history may be generated based on the identified POIs and may comprise the POI list.
According to yet another aspect of the subject technology, a mobile device enabled for rating points of interest (POIs) using mobile device location history is provided. The mobile device may include a location manager, a processor, memory, and a display unit. The location manager may be configured to receive, from a location service on the device, location information for a plurality of locations at which the mobile device was present. The processor may be configured to identify, by querying a database or a remote service, POIs associated with at least some of the locations of the plurality of locations. The memory may store a location history based on the identified POIs, the location history may comprise data objects identifying the identified POIs. The display unit may be configured to display a graphical user interface that prompts the user to provide responses to POIs in the location history.
According to yet another aspect of the subject technology, a mobile device enabled for rating points of interest (POIs) using mobile device location history is provided. The mobile device may include a location manager, a receiver module, and a display unit. The mobile device may include a location manager configured to obtain positional location information for the device. The receiver module may be configured to communicate a number of location information. The display unit may be configured to display a user interface. The user interface may include a rating interface generated based on a location history and may enable rating of at least one POI of a POI list. The POI list may include one or more POIs visited by a user of the mobile device. For at least some location information of the plurality of location information, POIs associated with the location information are identified. The location history may be generated based on the identified POIs and may comprise the POI list.
It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
The accompanying drawings, which are included to provide further understanding and are incorporated in and constitute a part of this specification, illustrate disclosed aspects and together with the description serve to explain the principles of the disclosed aspects.
Disclosed herein are systems and methods for rating points of interest (POIs) based on prior locations of a user. Information about prior locations can be stored in the form of a location history, e.g., comprising a data structure that comprises a plurality of coordinates sets or a plurality of location identifiers. The location history may be generated based on location information, e.g., location coordinates such as latitude and longitude, identified by a mobile device associated with the user. The user of the mobile device can be prompted for a user response to the location, e.g., on the mobile device or on another device, such as a desktop computer or another mobile device. In one aspect, the user response is solicited using a rating user interface that may be generated to enable the user of the mobile device to rate the visited POIs.
The user may wish to rate one or more of the visited POIs, in a later time, for example, after returning from a trip or after returning to a hotel or residence following a day of excursion and touring several POIs, or may wish to provide the response on a different device from the mobile device. The user interface can aid the user in recalling visited POIs, e.g., a set of POIs where the user has spent at least a threshold amount of time within a certain time interval, e.g., POIs which the user has rated previously. Server 110 may receive a set of the location information from the one or more mobile devices 120. The location information may include location coordinates (e.g., a geographical latitude and longitude), GPS information, wireless fidelity (Wi-Fi), or other wireless transmitter source (e.g., cellular tower) information. The Wi-Fi source information may include a location coordinate, an identifier of the Wi-Fi source, and a signal strength associated with a signal received by the Wi-Fi source from the mobile device 120. Based on the received location information, server 110 may generate a location history 160 including a list of POIs identified based on the multiple location information (e.g., of location visited by the user of mobile device 120). Server 110 may also generate a rating interface 150 based on location history 160. The rating interface 150 may allow a user of mobile device 120 to rate one or more visited POIs or ranked by users of other mobile devices (e.g., other than used by the user of mobile device 120), in a later time and from a location far from the visited POIs
Memory 230 may include random access memory (RAM), dynamic RAM (DRAM), static Ram (SRAM), flash memory, etc. Memory 230 may store various data including location data 235 and a number of software modules including an identification module 270, a location history module 280, an encryption module 285, and an interface module 290. In some aspects, identification module 270, location history module 280, and interface module 290 may be implemented in firmware or hardware. In some aspects, identification module 270, location history module 280, and interface module 290 may be stored on a storage 250, which may include one or more machine-readable media. Server 110 may communicate with mobile device 120, via network 140.
Network 140 may include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network 140 can include, but is not limited to, any one or more of network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.
Mobile device 120 may include any client device capable of communicating with server 120, such as a smart phone, a mobile computer, a tablet computer, a personal digital assistant (PDA), and a global positioning system (GPS) device. Mobile device 120 includes a communication unit 122, a location manager 123, memory 125, a display unit 124, and a processor 126. Mobile device 120 may include other hardware, firmware, or software modules not shown in
Referring to server 110, processor 210 may be a general-purpose processor (e.g., a central processing unit (CPU)), a graphics processing unit (GPU), a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information.
The machine-readable medium may be a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any non-transitory medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the embodiments discussed herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, storage mediums such as solid-state memories, optical media, and magnetic media.
Communication module 220 may be implemented in hardware or a combination of hardware, software and/or firmware. Communication module 220 may receive location information from mobile device 120, e.g., a number of location information from one or more mobile devices 120. The location information may represent the location information of the places at which mobile device 120 has been in the last predetermined period of time (e.g., last 3 minutes, or 3 weeks). The mobile device 120 may report its location in predetermined periods of time (e.g., every 3 minutes). In one aspect, communication module 220 may also receive each location coordinate with an associated time indicating a time that the mobile device 120 was located near that location coordinate and the user of the mobile device 120 was presumably in a near vicinity of that location coordinate. Communication module 220 may further receive each location coordinate with an associated time duration indicating a time duration that the mobile device 120 was not moving substantially from that location coordinate. This may indicate that the user of the mobile device 120 was presumably staying in a near vicinity of that location coordinate for that time duration. The location information and their associated times and time durations may be stored in a location data 235 of memory 230. Encryption module 285 may encrypt location information prior to storing the information in the location data 235.
Still referring to
Server 110 may receive location information from multiple mobile devices and store the received location information on database 240. Server 110 may provide the location information and rankings received from other mobile devices that relates to one or more POIs to a user of mobile device 120 and solicit rating of that POIs by the user of mobile device 120. The server may use processor 210 to process the rating results related to a POI received from multiple users, for example, to generate various aggregated or average ratings based on the rating results. Server 110 may communicate the average rating or an overall rating based on the aggregated values of the rating results to the user of the mobile device 120 or users of other mobile devices.
In an aspect, communication module 220 may receive location information from a plurality of mobile devices (e.g., mobile device 120). Each of the mobile devices may be associated with a user. Server 110 may store each location history in a secure format with information associating the location history with the corresponding user. Communication module 220 may receive location information for those locations at which the user has interacted with the mobile device to record the user's presence at the respective location. In an aspect, server 110 may limit the location history to POIs corresponding to such locations.
Identification module 270 may use the location data 235 and the POI information stored in database 240 to identify one or more POIs visited by the user of mobile device 120 (hereinafter “the user”). The identification module may include known search methods that for each location coordinate stored in the location data 235 query database 240 to search for an associated POI. If a POI is found for a location coordinate or a group of location coordinates, then it can be assured, based on an associated time durations stored for that location coordinate of the group of location coordinates that the POI was visited by the user. For example, identification module 270 may list a POI in the POI list of the location history 160 as a visited POI by the user, if the associated duration times satisfy a condition, for example, are longer than a predetermined period of time (e.g., 10 minutes), indicating that the user most likely spent at least 10 minutes in that POI. Identification module 270 may be able to obtain boundary location coordinate associated with a POI from database 240. Identification module 270 can then determine the associated time duration associated with the POI based on the associated times of location coordinates within that boundary.
In some embodiments, the location history can be generated in response to user triggers (e.g., user initiated check-ins). Server 110 may receive the check-in information associated with the POI from the website. Identification module may use the checking information as an evidence that the user visited the POI. This is particularly useful when a POI includes a number of sub-locations of interest, for example, when the user visits Eiffel Tower and spends some time in a specific coffee shop or gift shop in the Tower, it may not be easy to identify the location of the coffee shop or the gift shop from the location coordinates alone. The check-in information, for example, can help the identification module 270 to specifically identify the sub-locations of interest visited by the user or to gauge a threshold interest of the user in locations. In some embodiments, the user grants an authorization to the mobile device or an application running on the device to provide location information, e.g., from a location manager on the mobile device to the server.
In an aspect, the identification module 270 may determine a POI visited by the user of the mobile device by identifying a WiFi hotspot, known to be associated with the POI, in a WiFi connection records of the mobile device. A WiFi hotspot may be uniquely identified by, for example, a service set identifier (SSID) and a media access control (MAC) address. The identification module may query a database of SSID or MAC addresses to obtain SSID or MAC address of the WiFi hotspot. So, when the user of the mobile device is traveling in a location where GPS signal is weak, the position of the mobile device may be determined based on connection information recorded in the mobile device showing that user has connected to a hotspot, which can be identified based on a SSID or MAC address available form the database.
Location history module 280 may be configured to generate a location history based on the identified POIs. The location history may comprise data objects that identify the POIs that are identified by the identification module 270. Each data object may comprise a unique identifier (e.g., POI1, POI2 POIM, of
Still discussing
In some aspects, communication module 220 may prompt the user (e.g., transmit electronic messages (e.g., email, text message, etc.) to the user), after one or more POIs are identified as most likely visited by the user, to inquire whether the user is willing to provide a user response, such as a rating for those POIs. In some aspects, the user may initiate rating of the visited POIs by activating a user interface or navigating to a website associated with server 110. The website can provide a user interface (see examples in
In an aspect, communication module 220 may transmit to mobile device 120 or a device authorized by the user of mobile device 120 (e.g., another mobile device or other device) portions of location history 160 and instructions for causing the mobile device 120 or the authorized device to display a graphical user interface and prompt the user to provide responses to POIs in location history 160. The portion of location history 160 transmitted to mobile device 120 my be limited the POIs for which server 110 does not have a response from the user or POIs for which the server does not have at least a threshold number of (e.g., three) responses from users.
Referring to mobile device 120 of
In yet another aspect, location manager 123 may receive location information from a location service on the mobile device. Mobile device 120 may use processor 126 to identify POIs associated with at least some of the locations. Mobile device 120 may query a database (e.g., database 240) or a remote server (e.g., server 110) to provide information to processor 126 to identify the POIs. Mobile device 120 may also store in memory 125 a location history based on the identified POIs. The location history may comprise data objects that can identify the POIs. Each data object may comprise a unique identifier (e.g., POI1, POI2 . . . POIM, of
Mobile device 120 may use processor 126 to process the GPS signals or cellular tower signals and obtain location information. In some aspects, mobile device 120 may utilize firmware or software applications executable by processor 126 to process the GPS signals or cellular tower signals. For example, the firmware or software applications may use a well-known triangulation method to obtain the location information of mobile device 120. The location information of mobile device 120 may include location coordinates including a latitude, a longitude, and an altitude (xyz, for example in tall structures with multiple levels); or polar coordinates. For calculating an associated time duration for a location coordinate, mobile device may rely on location information sampled over time or an accelerometer data for example, the duration of time that the mobile device is not moving substantially or stays in a nears vicinity (e.g., within a zone with a predetermined radius such as 300 feet) of a location coordinate. In an aspect, the location manager 123 may provides information indicating that the location has not changed. Alternatively, mobile device 120 may analyze signals from location systems such as GPS to detect lack of movement characterized by a substantially slow down of the movement of the signals or no movement of the signal out of a certain boundary associated with the POI, indicating that the mobile device 120 has not moved out of that boundary. The mobile device 120 may store information such as the location information in memory 125.
Display unit 124 may be configured to display a user response interface, e.g., the rating interface to the user. Display unit 124 may include hardware, firmware and software executable by the processor 126 and a display (e.g., a liquid crystal display (LCD) or a touch sensitive display)) to display the user interfaces.
The time information may also be used to determine whether the user of the mobile device has participated in an scheduled or unscheduled event, for example, by checking an event database (e.g., a database of schedules of theatres, movies, concerts, meetings, lectures, rallies etc). If the user has participated in the event, then the server 110 of
Chart 430 may include the list of depicted POIs as well a description for each depicted POI shown in description block 432. Check box blocks 434 and 436, respectively, allow the use to indicate, based on the description, whether the user has actually visited the respective POI, and whether the user is willing to rate the respective POI. The descriptions may include any description of the depicted POI, including any combination of information relating to the depicted POI, for example, an identification (e.g., name of the location), address, phone number, name of a personnel (e.g., a manger), etc. The user interface may use other combinations of maps, descriptions, check boxes and other features to depict the POIs listed in location history 160. The user interfaces shown in
It is to be understood that the disclosure is not to be limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements. Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. Skilled artisans may implement the described functionality in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
The specific order or hierarchy of steps in the methods disclosed is an illustration of examples of approaches. The specific order or hierarchy of steps in the methods may be rearranged, e.g., based on design preferences. Some of the steps may be performed simultaneously or in an alternative order. Other embodiments are also within the scope of the following claims.