The disclosed embodiments relate to systems for providing location-based services to mobile devices. More specifically, the disclosed embodiments relate to techniques for dynamically updating a geofence of a mobile business to reflect changes in the location of the mobile business.
The disclosed embodiments provide a system that dynamically updates a geofence for a mobile business. During operation, the system establishes a first location and a first geofence for the mobile business. Next, the system receives a second location of the mobile business different than the first location of the mobile business. The system then generates an updated geofence for the mobile business based on the second location of the mobile business. The system subsequently broadcasts the second location of the mobile business to a set of mobile clients monitoring the mobile business.
In some embodiments, the system also predicts an estimated time of arrival (ETA) of the mobile business at a third location based at least on the second location. Next, the system notifies the set of mobile clients of the ETA of the mobile business at the third location.
In some embodiments, the system predicts the ETA of the mobile business at the third location by determining a velocity of the mobile business based at least on the second location. The system can predicts the ETA of the mobile business at the third location by determining a pattern of movement of the mobile business based at least on the second location.
In some embodiments, the system alerts a mobile client when the mobile client enters the updated geofence of the mobile business.
In some embodiments, prior to establishing the first location and the first geofence, the system registers the mobile business.
In some embodiments, the system registers the mobile business by using either a business-side mobile application or a business-side web application.
In some embodiments, the system alerts the mobile business when a mobile client enters the updated geofence.
In some embodiments, the system predicts a path of the mobile business based at least on the first location and the second location.
The disclosed embodiments also provide a system that dynamically updates a geofence of a mobile business to a server. During operation, the system registers with the server by sending a first location of the mobile business to the server, wherein the first location is used to determine a first geofence for the mobile business. Next, the system detects a change of location of the mobile business from the first location to a second location. The system then sends the second location of the mobile business to the server, which is used to determine an updated geofence for the mobile business from the first geofence. The system may also send attribute information associated with the second location to the server.
In some embodiments, the system receives notification from the server of the present of one or more mobile clients within the updated geofence.
In some embodiments, the system receives notification from the server when a mobile client enters the updated geofence.
In the figures, like reference numerals refer to the same figure elements.
The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
A geofence is a virtual perimeter for a real-world object, such as a store or a location. Existing implementations of geofences and places tend to be static and fixed in location. However, some real world objects, such as a mobile food truck, a kiosk, or any other moving business can change their location from place to place. For example, a mobile food truck may be positioned at different spots around a city during a business day. Hence, it is desirable for clients to keep track of the movement and location of the mobile food truck, and to be alerted when the clients enter/leave the geofence of the mobile food truck, or vice versa. Unfortunately, the existing implementations of geofences fail to address such mobile businesses that do not have a fixed location.
The disclosed embodiments provide a method and system for dynamically updating a geofence of a mobile business/vendor. Using a combination of server-side processing and a unique client-side application, the geofence of the mobile business is constantly updated as its coordinates vary with the movement of the mobile business. In particular embodiments, after the mobile business initially registers its location and geofence with the server, a mobile device associated with the mobile business detects a change of location of the mobile business from an old location to a new location. The mobile device subsequently transmits the new location of the mobile business and optionally transmits attribute information associated with the new location to the server. The server then generates an updated geofence for the mobile business based on the new location of the mobile business, and subsequently broadcasts the new location of the mobile business to a set of mobile clients monitoring the mobile business. In some embodiments, the server is also configured to predict an estimated time of arrival (ETA) of the mobile business at a new location before the mobile business arrives at the new location. The server then notifies the set of mobile clients of the ETA of the mobile business at the new location.
Note that the application layers built upon the proposed techniques can remain unchanged, i.e., they still notify clients as they move in and out of geofences, while the underlying framework takes care of the dynamic update of the geofences.
System 100 also includes a mobile business 106. Note that mobile business 106 can include any business that may change its location over time, such as a mobile kiosk, a food truck, a mobile office, a mobile vendor, flea market, among others. Mobile business 106 uses a mobile device 108 to detect and update location changes of mobile business 106. Note that mobile device 108 can be equipped with one or more of the following location-detection capabilities: (1) a cellular-based location-detection capability; (2) a Wi-Fi-based location-detection capability; (3) a GPS; and (4) other location-detection capabilities. Mobile business 106 may be equipped with a business-side mobile application or web application which is used to register mobile business 106 to server 102, and to update the current location to server 102. The business-side mobile application or web application may be configured to set up the geofence that defines the radius which mobile business 106 wants to notify a potential client when the mobile business is currently within an area monitored by the potential client. Note that this monitored area of the potential client can be much larger than the geofence of mobile business 106.
System 100 further includes a plurality of mobile/wireless clients 110-1 to 110-3 (“wireless client(s)” hereinafter). Note that wireless clients 110 can include laptop computers, tablet computers, portable media players, smartphones, and/or other modern computing devices equipped with wireless capabilities. Each wireless client 110 may be installed with a client-side mobile application or web application, which is used to check-in and check-out with server 102, to notify its current location to server 102, and to query server 102 whether there is any geofence within a monitored area of wireless client 110. In some embodiments, the client-side mobile application or web application is at least running in the background on wireless clients 110 to receive notifications and updates as their location changes relative to mobile business 106. The notifications and updates received by wireless clients 110 are dynamic and can be configured to best fit the local context by taking into account such factors as location and time, among other factors.
Note that server 102, mobile business 106, and wireless clients 110 are intercoupled through network 160, which can include any type of wired or wireless communication channel capable of coupling together computing nodes. This includes, but is not limited to, a local area network, a wide area network, or a combination of networks. In one embodiment of the present invention, network 160 includes the Internet. In some embodiments, network 160 includes phone and cellular phone networks.
More specifically, server 102 and mobile business 106 are coupled through a bi-directional wireless link 112. Through link 112, mobile business 106 can update its location and attributes to server 102, and can receive updates from checked-in wireless clients. Server 102 and wireless clients 110-1 to 110-3 are coupled through a set of bi-directional wireless links 114-1 to 114-3. Through each bi-directional link 114, a respective wireless client 110 can update check-in/check-out status and current location to server 102, and can receive dynamic geofence updates and attributes associated with mobile business 106 from server 102. Moreover, each wireless client 110 can receive alerts from server 102 when wireless client 110 is approaching or departing from the geofence of mobile business 106. Note that wireless client 110 entering and exiting the geofence of mobile business 106 can be a result of one or both of the movement of the wireless client and the movement of mobile business 106.
In some embodiments, mobile business 106 may establish itself by registering with server 102, with the business name and location, among other information. The registration process can be managed by the aforementioned business-side mobile application or web application. Upon completing registration, server 102 creates a geofence around mobile business 106, which may be identical to the geofence set up on mobile business 106 by the business-side mobile application or web application. Through the business-side mobile application or web application, mobile business 106 receives alerts from server 102 when any wireless client 110 is entering its geofence, which then triggers business-side actions such as sending out coupons to the client. Note that while system 100 of
In some embodiments, mobile business 106 can detect a change of its location from the current location to a new location and subsequently transmit the new location to server 102 through link 112. Server 102 can update the location for mobile business 106 and also determine an updated geofence for the mobile business 106. Note that mobile business 106 can constantly update its location to server 102 as its coordinates vary, e.g., when mobile business 106 is in the process of traveling. Consequently, server 102 can constantly update the dynamic geofence for mobile business 106 as long as new location updates are being received. In one embodiment, while updating its new location to server 102, mobile business 106 may also send attribute information associated with the new location to server 102.
In some embodiments, server 102 can monitor the location of each wireless client 110, and send notification through link 112 to mobile business 106 when the location is inside the dynamic geofence of mobile business 106. For example, mobile business 106 can receive notification from server 102 of the present of one or more wireless clients 110 within the updated geofence. Mobile business 106 can also receive notification from server 102 when a wireless client 110 enters the updated geofence.
In one embodiment, a wireless device of mobile vendor 202 is configured to detect whether the location of mobile vendor 202 has changed. More specifically, the wireless device can detect the location change based on one or more of the following signal sources: (1) cellular signals; (2) Wi-Fi signals; and (3) GPS signals. In the example of
In some embodiments, instead of waiting for mobile vendor 202 to provide its final destination L2, the server can predict the possible end destination and estimated time of arrival (ETA) of the mobile vendor 202. Such predictions may be made based on a number of factors, which can include, but are not limited to: an estimated velocity value of mobile vendor 202, a pattern of movement of mobile vendor 202, and a schedule of mobile vendor 202. For example, the server can determine the velocity of mobile vendor 202 based on an intermediate location between L1 and L2 and the associated time of arrival received from mobile vendor 202. Note that the server can also predict a possible path of movement of mobile vendor 202 based on the initial location L1 and the intermediate location. Next, the server predicts an ETA of mobile vendor 202 at location L2 based on the determined velocity. The server subsequently provides the ETA of mobile vendor 202 at location L2 to wireless clients 204-210 before mobile vendor 202 arrives at L2.
Note that the server can also provide additional attribute information requested by mobile vendor 202 and associated with the new location to wireless clients 204-210. Such attribute information may include, but is not limited to, any or all of the following:
In response, the server generates an updated geofence for the mobile business based on the updated location of the mobile business (step 308). The server then broadcasts the updated location of the mobile business to a set of mobile clients which are currently checked-in with the server (step 310). The server can constantly update the dynamic geofence for the mobile business and notify the set of mobile clients of the updated location of the mobile business as long as new location updates are being received. Note that the server may also broadcast attributes associated with the dynamic geofence of the mobile business to the set of mobile clients. The server also alerts a mobile client when the mobile client enters the updated geofence of the mobile business (step 312).
The mobile business subsequently sends the new location of the mobile business to the server, which is used to determine an updated geofence for the mobile business (step 406). Note that the mobile business can constantly update its location to the server as its coordinates vary, e.g., when the mobile business is in the process of traveling. Note also that while updating its new location to the server, the mobile business may also send attribute information associated with the new location to the server. Next, the mobile business receives notification from the server when a mobile client enters the updated geofence (step 408). The mobile business can also receive notification from the server of the present of one or more mobile clients within the updated geofence (step 408).
Note that dynamic geofences proposed herein not only allow for multiple geofences to be tied to and updated relative to a dynamic location, but also allow for broadcasting specific attribute information tailored to a particular location to nearby clients. As such the proposed dynamic geofence updating process enables extremely accurate local marketing that tailors the message based on current location, time and possibly other factors such as weather, inventory, among other things.
The foregoing descriptions of various embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention.
This application hereby claims priority under 35 U.S.C. §119 to U.S. Provisional Application No. 61/762,809, entitled “DYNAMIC PLACING AND UPDATING GEOFENCE FOR A MOBILE BUSINESS,” by inventors Gregory K. Coulombe et al. filed on 8 Feb. 2013.
Number | Name | Date | Kind |
---|---|---|---|
20130091452 | Sorden et al. | Apr 2013 | A1 |
20140066090 | Henderson | Mar 2014 | A1 |
20140155094 | Zises | Jun 2014 | A1 |
20140162692 | Li et al. | Jun 2014 | A1 |
20140164118 | Polachi | Jun 2014 | A1 |
Number | Date | Country | |
---|---|---|---|
61762809 | Feb 2013 | US |