WO2016134315A1 - Waypoint navigation system, applications, and methods - Google Patents

Waypoint navigation system, applications, and methods Download PDF

Info

Publication number
WO2016134315A1
WO2016134315A1 PCT/US2016/018771 US2016018771W WO2016134315A1 WO 2016134315 A1 WO2016134315 A1 WO 2016134315A1 US 2016018771 W US2016018771 W US 2016018771W WO 2016134315 A1 WO2016134315 A1 WO 2016134315A1
Authority
WO
WIPO (PCT)
Prior art keywords
waypoint
location
floating
client
user
Prior art date
Application number
PCT/US2016/018771
Other languages
French (fr)
Inventor
Ryan ANTOON
Original Assignee
Application Concepts, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Application Concepts, Llc filed Critical Application Concepts, Llc
Publication of WO2016134315A1 publication Critical patent/WO2016134315A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3438Rendez-vous, i.e. searching a destination where several users can meet, and the routes to this destination for these users; Ride sharing, i.e. searching a route such that at least two users can share a vehicle for at least part of the route

Definitions

  • Examples of systems described herein include a server running an application.
  • the server may be configured to send an request from a first client at a first location to a second client at a second location to navigate to a common location, responsive to receiving acceptance of the request from the second client.
  • the server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the second client from the second location such that the first client and the second client arrive at the same time.
  • the estimated time of arrival may take into account at least one of mode of transportation, traffic, or route details.
  • the server may be configured to update the common meeting location during navigation of the first and second clients to the location.
  • the server may be further configured to identify the common meeting location by receiving location information specifying the first and second locations from GPS units associated with the first and second clients, receiving information relating to a route between the first and second locations, and calculating a midpoint of the route.
  • the route comprises a plurality of steps, each of the plurality of steps having a duration. Calculating the midpoint of the route may include identifying a midpoint step of the plurality of steps occurring during a midpoint of a total route time, and calculating a fraction of the midpoint step to be elapsed before reaching the midpoint of the total route time, and identifying a location at the fraction of the midpoint step.
  • the server may be further configured to dynamically update the common meeting location based on receipt of updated location information from the first and second clients.
  • the server may be further configured to send a request from the first client at the first location to a third client at a third location to navigate to the common location, responsive to receiving acceptance of the request from the third client.
  • the server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location such that the first client, second client, and third client arrive at the same time.
  • the server may be further configured to receive a request from the first client to uninvite the second client and, responsive to receipt of the request from the first client to uninvited the second client, re-determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location.
  • Example methods may include receiving location information from client devices associated with selected contacts that have accepted an invitation sent from a user to participate in a navigation, identifying a floating waypoint at a location between the client devices, and transmitting location information regarding the floating waypoint to the client devices.
  • the location information is received from GPS units associated with each of the client devices.
  • methods may include receiving updated location information from the client devices, identifying an updated floating waypoint based on the updated location information, and transmitting location information regarding the updated floating waypoint to the client devices. [013] In some examples, methods may further include receiving user input indicative of a request to lock in the floating waypoint and ceasing updates of the floating waypoint responsive to the user input indicative of the request to lock in the floating waypoint.
  • methods may further include receiving a request to suggest venues near the floating waypoint, presenting a list of venues within a threshold distance of the floating waypoint, receiving an indication of a selected venue from the list of venues, and transmitting location information regarding the selected venue to the client devices.
  • methods may further include displaying the list of venues to a user in an order of distance from the floating waypoint.
  • methods may further include displaying the floating waypoint using a first icon and, responsive to receipt of the user input indicative of a request to lock in the floating waypoint, displaying the floating waypoint using a second icon.
  • the first icon may include dotted lines and the second icon may include solid lines.
  • Some example computer readable media may be encoded with instructions, that, when executed by one or more processing unit(s), cause a system to perform actions, including instructions for providing an invitation, from a user, to a selected contact to join a navigation, responsive to receipt of an indication of acceptance of the invitation, receiving location information from a GPS unit of a device associated with the selected contact, providing a location of a device associated with the user and the location information from the GPS unit of the device associated with the selected contact to a navigation application and receiving, from the navigation application, a route between the location of the device associated with the user and the location information from the GPS unit of the device associated with the selected contact, identifying a floating waypoint such that a travel time for the user and selected contact to the floating waypoint are equal within a predetermined threshold time, and providing location information of the floating waypoint to the device associated with the selected contact.
  • the route has a total duration and includes a plurality of steps, each having a duration
  • instructions for identifying the floating waypoint comprise instructions for identifying a midpoint step of the plurality of steps occurring during a midpoint of the duration and a fraction of the midpoint step occurring at the midpoint of the duration, the instructions for identifying the floating waypoint further comprising identifying a location at the fraction of the midpoint step.
  • Some example computer readable media may include instructions for providing suggested venues within a radius of the floating waypoint.
  • Some example computer readable media may further include instructions for receiving an indication from the user of a selected one of the suggested venues, and providing location information of the selected one of the suggested venues to the device associated with the selected contact.
  • Some example computer readable media may further include instructions for updating a display with a dynamic location of the user, the selected contact, and the floating waypoint.
  • Figure 1 is a schematic illustration of the Waypoint Navigation System in accordance with an embodiment of the disclosure.
  • Figure 2 is a flowchart of initiating use of a waypoint navigation application in accordance with examples described herein.
  • Figure 3 is a flowchart of a method for waypoint navigation in accordance with examples described herein.
  • Figure 4 is a schematic illustration of a user device screen illustrating a floating waypoint in accordance with examples described herein.
  • Figure 5 is a schematic illustration of a user device screen illustrating a display of suggested venues in accordance with examples described herein.
  • the Waypoint Navigation Application may route the two or more users from respective starting locations to a common meeting location that is equidistant in time between the starting locations of the two or more users.
  • the meeting point and routing for each user selected by the Waypoint Navigation Application may be based on traffic data and geographical route navigation.
  • the Waypoint Navigation Application may plot a radius based search for nearby points of interest along the route for each of at least the two users.
  • the Waypoint Navigation Application may also be used for direct line of sight navigation, such as in aeronautical or marine applications.
  • the Waypoint Navigation application may also include, a "Floating Midpoint" technology where the meeting point is adjusted in real time as each of the at least two users converge based on differences in speed, caused by situations such as unforeseen navigational hurdles (e.g., accident) or differences in modes of transportation (e.g., car vs. bicycle). In these cases the Waypoint Navigation Application may adjust the midpoint based on to differences in approach speed. While in a "Free Float" mode, the Waypoint Navigation Application may continually shift the meeting point toward the slower user, which may provide an accurate prediction of arrival time at the meeting point.
  • the Waypoint Navigation Application may also include corridor waypoint selection that includes searching a lateral distance along any plotted route, such as looking for a coffee or food along a route.
  • the lateral distance may be selectable by a user, and a user may be able to select a mid-point location to add to the route from the corridor search.
  • the Waypoint Navigation Application may be installed on a client for use by a user of the client.
  • clients described herein may include devices having one or more processing unit(s) (e.g. processors) and computer readable media (e.g. memory) encoded with executable instructions causing the device to perform functions described herein, and/or display user interfaces described and/or shown herein.
  • processing unit(s) e.g. processors
  • computer readable media e.g. memory
  • the Waypoint Navigation system may make use of a third party server that is used to store the algorithm and communicate with data providers (e.g., map, traffic, etc.) to provide real time traffic data and map plotting data to the clients running the Waypoint Navigation Application.
  • the routing information may be communicated over a communications network (e.g., cellular or Wi-Fi) to the clients running the Waypoint Navigation Application.
  • the client is able to access locations of other clients running the Waypoint Navigation Application (with real time permission) in order to plot navigational routes by accessing the algorithm located on the third party server.
  • the Waypoint Navigation Application may not be required, for example one or more coordinate set(s) may be entered by a client (e.g. using a third party application) and a waypoint may be automatically calculated and returned for use (e.g. within the third party application).
  • the third party client may (e.g. through their own servers) make a call to servers hosting the waypoint calculation, deliver their coordinates, and be returned the waypoint calculated using methods described herein.
  • FIG. 1 illustrates Waypoint Navigation system 100 according to an embodiment of the disclosure.
  • Each of a plurality of clients 102(1-N) may be implemented using a computing device, including but not limited to a laptop, a desktop, a computer, a tablet, a media device, a smart phone, cellular phone or other mobile device, or any combination or sub-combination of the same.
  • Each of the plurality of clients 102(1-N) may include a computer readable medium 103(1-N) (or multiple computer readable media in some examples) encoded with executable instructions that may be executable by one or more processing units (not shown in Figure 1) of the client 102(1-N) to provide a user interface for transmitting, receiving, encoding, and/or decoding data related to the Waypoint Navigation Application on the respective client 102(1-N).
  • the clients 102(1-N) include a speaker for providing audio messages to a user or another person.
  • Each of the clients 102(1-N) may be coupled to a network 110 to send and receive data.
  • the network 110 may be implemented using one or more networks, such as local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), cellular networks, and/or the Internet. Communications provided to, from, and within the network 110 may wired and/or wireless, and further may be provided by any networking devices known in the art, now or in the future. Devices communicating over the network 110 may communicate with any communication protocol, including, but not limited to, TCP/IP, UDP, RS-232, and IEEE 802.11. [037] Each of the clients 102(1-N) may communicate with the data servers 120.
  • servers described herein may include one or more processing unit(s) (e.g. processors) and computer readable media (e.g. memory) encoded with executable instructions to perform server functions described herein. It is to be understood that the arrangement of components is quite flexible, and in some examples, a client 102(1-N) may perform some or all of the functions described herein as being performed by a server 120. For example, multiple clients 102(1-N) may send location information to one another and include computer readable media encoded with executable instructions for waypoint navigation described herein to calculate and update a meeting location. In some embodiments, the clients 102(1-N) may communicate to the data servers 120 via the network 1 10 to provide or retrieve data based on a mode of operation.
  • processing unit(s) e.g. processors
  • computer readable media e.g. memory
  • the data servers 120 may include a computer readable medium 123 that is configured to store instruction for the Waypoint Navigation System 124 executable by the processing unit(s) 121.
  • the Waypoint Navigation System 124 may include an algorithm that receives locations of two or more clients 102(1-N) and calculates a meeting location and routing between two or more clients 102(1-N) based on location information received from each of the two or more clients 102(1-N), and provides the routing information and meeting location to each of the two or more clients 102(1-N).
  • the locations of the clients 102(1-N) may be provided to the system 124 by, for example, one or more GPS devices present in one or more of the clients 102(1-N).
  • the locations may be determined through other data received from the clients 102(1-N), such as but not limited to, cellular data.
  • the Waypoint Navigation System 124 may also provide current locations of the two or more clients 102(1-N) to each of the two or more clients 102(1-N).
  • the Waypoint Navigation System 124 may communicate with one or more third party servers 150 to retrieve with data (e.g., map, traffic, etc.) from third party data providers.
  • the retrieved data from the third party servers 150 may be used by the Waypoint Navigation System 124 algorithm to calculate the routing and meeting location based on real time traffic data and map plotting data.
  • the real time traffic data may be drawn from a number of sources via the third party servers 150.
  • the meeting location selected by the Waypoint Navigation System 124 may be a best (e.g., fastest, equidistant, etc.) point to navigate to for each of the clients 102(1-N) connected on the application at that time. Further, the Waypoint Navigation System 124 may also plots a radius based search for nearby points of interest (e.g., coffee shops, restaurants, bars, parking lots and other desirable meeting locations) to provide to each of the two or more clients 102(1-N).
  • the routing information determined by the algorithm of the Waypoint Navigation System 124 in some examples, may be line of sight navigation, such as in aeronautical, marine, or off-road applications.
  • the Waypoint Navigation System 124 may adjust the meeting location in real time based on differences in speed, caused by situations such as unforeseen navigational hurdles (e.g., accident) or differences in modes of transportation (e.g., car vs. bicycle). For example, the Waypoint Navigation System 124 may adjust the midpoint based on to differences in approach speed. While in a "Free Float" mode, the Waypoint Navigation System 124 may continually shift the meeting point toward the slower user, which may provide an accurate prediction of arrival time at the meeting point.
  • unforeseen navigational hurdles e.g., accident
  • modes of transportation e.g., car vs. bicycle
  • the Waypoint Navigation System 124 may adjust the midpoint based on to differences in approach speed. While in a "Free Float" mode, the Waypoint Navigation System 124 may continually shift the meeting point toward the slower user, which may provide an accurate prediction of arrival time at the meeting point.
  • the Waypoint Navigation System 124 may also include corridor waypoint selection request from a client 102(1-N). Responsive to the corridor waypoint selection request, the Waypoint Navigation System 124 may search a lateral distance along any plotted route, such as looking for a type of venue (e.g. coffee or food) along a route. The lateral distance may be selectable by a user at a client 102(1-N), and the selected lateral distance may be provided to the data server 120 by the client 102(1-N). In some examples, a client 102(1-N) may receive a mid-point location selection from a user to add to the route from the corridor search, which may be provided to the data server 120.
  • a type of venue e.g. coffee or food
  • the user input a search for a "coffee shop” and selected a 1 ⁇ 2 mile lateral search distance on each side of their pre-piotted navigational route provided by the Waypoint Navigation System 124, and the client 102(1-N) may display all waypoints related to the "coffee shop” search on a map within 1 ⁇ 2 mile along the route.
  • a user may select one of the waypoints on the client 102(1-N), and the Waypoint Navigation System 124 may update the route to include the selected waypoint.
  • Current applications do not allow a user to search along the route with a user selected corridor distance. This feature may allow the user to determine when they want to stop, and how far off of the route they want to stray to retrieve the coffee.
  • Exemplary use cases are described herein, including screen shots and/or actions of user devices (which may be, for example shown on the displays of any of clients 102 (1-N) of Figure 1), for examples of the Waypoint Navigation system described with reference to Figure 1.
  • the examples described are for illustration purposes only, and other layouts, ordering of actions, and/or user options may be implemented without departing from the nature of the disclosure.
  • FIG. 2 is a flowchart of initiating use of a waypoint navigation application in accordance with examples described herein.
  • the method 200 includes selecting a contact at block 202, determining if the selected contact is in network in block 204, and if the selected contact is not in network, sending a link for download or registration to the selected contact in block 206. After download and/or registration, or if the selected contact is already in network, the method includes sending a notification to the selected contact in block 20S, and determining if the selected contact accepted the notification in block 210. If the selected contact does not accept, the method ends in block 212. If the selected contact does accept, the method includes receiving the location information of the selected contact in block 214.
  • the method 200 includes selecting a contact 202.
  • a user device e.g. any of client(s) 102(1-N) of Figure 1
  • the contact may be selected in another application (e.g. social media, calendar, email client) and the user may request to navigate to that contact.
  • a drop-down menu of suggested contacts may appear, and the user can select one contact from the drop-down menu.
  • "favorite" or recently-selected contacts may be starred or include some other indication of their recent use or favorite status.
  • the user device may identify, in block 204, whether the selected contact is in the user's network. For example, the user device may query a server (e.g. the server 120 of Figure 1) regarding whether the selected contact is a registered user of the waypoint navigation system. The query may be made, for example, using the selected contact's name, address, email address, or other information. If the selected contact is not in the user's network, at block 206, the user device and/or server may send a link or other invitation to the contact (e.g. via email or SMS) to download the waypoint navigation application and/or register with a waypoint navigation server (e.g. server 120).
  • a server e.g. the server 120 of Figure 1
  • the query may be made, for example, using the selected contact's name, address, email address, or other information.
  • the user device and/or server may send a link or other invitation to the contact (e.g. via email or SMS) to download the waypoint navigation application and/or register with a waypoint navigation server (e
  • a notification may be sent to the selected contact in block 208.
  • the user device and/or the server may send the notification in block 208.
  • a push notification may be sent to the selected contact (e.g. via email and/or SMS) that the user wants to meet the selected contact.
  • a pop-up window or other display may appear indicating that the user wants to meet with the selected contact.
  • the selected contact may affirm or reject the meeting request in block 210. If the selected contact rejects the meeting request, in block 212 the method ends, and no location information may be exchanged in some examples and no waypoint is calculated. If the selected contact accepts the meeting request, in block 213, a location of the contact may be received (e.g. by the server 120 and/or a user device being operated by the user, such as a client 102(1-N) of Figure 1). Accordingly, the user device and/or the server may receive location information (e.g. GPS data) from a first user device being operated by the requesting user and location information (e.g. GPS data) from a second user device being operated by the selected contact. The locations of the user and the requested contact may be different, for example, from addresses stored in a contact database on any of the devices - e.g. the user and selected contact may not be at home or at work when the meeting is requested, although they may be in some examples.
  • location information e.g. GPS data
  • the method 200 of Figure 2 may be performed for any number of selected contacts.
  • a user may desire to meet with 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or another number of selected contacts.
  • Each selected contact may be invited to join the waypoint navigation, and location information of all selected contacts, once they have accepted a join invitation, may be received by the requesting user and/or by other of the selected contacts.
  • the Application may identify a meeting location for those contacts, which may be based on mode of transportation, current traffic conditions and navigational (e.g. route) options.
  • the application may identify a meeting location as an exact mid-point (e.g. by distance and/or by time to destination) between the contacts.
  • the application may identify a meeting location as a closest venue (e.g. coffee shop, restaurant) to an exact mid-point (e.g. by distance and/or time to destination).
  • the application may provide a group of suggested meeting locations within a threshold distance and/or time of travel from an exact mid-point between the contacts.
  • Figure 3 is a flowchart of a method for waypoint navigation in accordance with examples described herein.
  • a common meeting location may also be referred to as a waypoint herein.
  • one or more contact(s) may accept a user's request to meet, and their location information may be received.
  • the contacts) location information may be received by the user's user device (e.g. one of clients I02(l-N) of Figure 1) and/or by a server (e.g. server 120 of Figure 1).
  • the location information may be provided, for example, by a GPS unit in a device used by the contacts) (e.g. cell phone, tablet, etc.), and/or may be determined from other signals received from the contact(s)'s device(s) (e.g. cell phone signals).
  • the waypoint navigation application may identify a floating waypoint between the contacts).
  • the floating waypoint may be identified, for example, as a midpoint between the contact(s).
  • the floating waypoint may be based on mode of transportation, current traffic conditions and navigational (e.g. route) options.
  • the floating waypoint may be identified as a location that has an equal projected travel time for each of the contact(s).
  • the travel time may, for example, be based on a mode of transportation (e.g. driving, public transit, walking) which may be specified by each of the contacts) (e.g. in settings of their waypoint application).
  • the floating waypoint may be identified, for example by the user device (e.g. one of clients 102(1-N) of Figure 1) and/or by the server (e.g. server 120 of Figure 1).
  • the floating waypoint may be identified using durations of steps of a route.
  • a route may be calculated between the user and the location of an invited contact.
  • the route may be calculated by a navigation application resident on the user's device and/or the server.
  • Google Maps, MapQuest, Bing Maps, or another navigation application may be used to calculate a route.
  • the route may include multiple steps (e.g. straight travel segments between turns). Each step may have a duration, which may be based on the mode of transportation of the user.
  • a threshold may be stored for the midpoint (e.g. a threshold of 1 minute may indicate that no contact should have a projected travel time greater than 1 minute longer than any other participant).
  • a distance between points A and B may be written as D(A,B).
  • a time to go from A to B may be written as T(A,B).
  • a distance traveler A can go for time T may be written as DT (A, T).
  • An example floating waypoint calculation begins with calculation of a route between A and B.
  • the route is 100 minutes and includes 5 steps as follows: step 1 (10 minutes); step 2 (20 minutes); step 3 (10 minutes); step 4 (30 minutes), step 5 (30 minutes). If the step durations are the same for both contacts and a midpoint is desired, the midpoint should be during step 4.
  • a midpoint it would be at 50 minutes, which is 10 minutes into step 4 (e.g, 50-10-20-10). That is 1/3 of the distance of step 4 (e.g. 10/30).
  • the floating waypoint may be defined at a location that is 1/3 of the way along step 4.
  • the server may utilize a multi-party algorithm to identify the floating waypoint.
  • the server and/or user device may identify routes to road points in multiple (e.g. all) grid locations within a radius from each party, equaling the distance between two parties (e.g. the two furthest parties in some examples).
  • travel times for each participant to locations within a radius may be calculated.
  • the system may identify grid sectors having travel times for all parties within a threshold (e.g. one, two, three minute) arrival range window.
  • the grid sectors meeting that criteria and/or a location at a predetermined, such as central, location of the grid sector) may then be plotted for selection by the inviting member.
  • methods for identifying floating waypoints as described herein may calculate a route (and/or receive a route calculation) between the current positions of the participants.
  • the route may include a total duration, a plurality of steps and a duration for each step.
  • a desired duration to the floating waypoint may be identified (e.g. by dividing the total duration by 2), and may be the same for each of the participants.
  • the step during which the desired duration occurs may be identified, and a fractional distance into the step at which the desired duration occurs may be identified.
  • a location that fractional distance into the step may be identified (e.g. using a navigation application), and that location may be identified as a floating waypoint.
  • a selected contact may accept an invitation to join the navigation after the floating waypoint has been identified and/or after a waypoint has been locked in.
  • the initiator of a meeting e.g. user
  • the initiator of a meeting may be prompted to retain the floating waypoint and/or locked in waypoint after the addition of another contact, or to recalculate the waypoint. If the initiator indicates to recalculate the waypoint, the waypoint identification process may repeat, this time including the location information of the additional contact.
  • FIG. 4 is a schematic illustration of a user device screen illustrating a floating waypoint in accordance with examples described herein.
  • the display screen 400 provides a location of a user 402, a selected contact 404, and a floating waypoint 406.
  • the information on the display screen 400 may be similar (e.g. the same) on a user device of a user initiating a meeting, and on the devices of those selected contacts that agreed to participate in the navigation.
  • the floating waypoint may be illustrated with an icon different than those used to display the current location of the user 402 and the selected contact 404.
  • the icon used to illustrate the floating waypoint 406 may be selected to provide an indication that the waypoint 406 is floating.
  • dotted lines may be used to illustrate the floating waypoint 406, while a filled dot may be used to illustrate the current locations of user 402 and selected contact 404.
  • the icon used to illustrate the floating waypoint 406 may be larger than that used to illustrate the user 402 and/or the selected contact 404.
  • the floating waypoint 406 may be dynamic. For example, if additional selected contacts are added to the anticipated meeting, the floating waypoint 406 location may change. Additionally, if one or more of the contacts involved in the meeting change current location, the floating waypoint 406 may change such that it is maintained at a location providing equal transit time for all participants. If the user who initiated the meeting (e.g.
  • the user 402) closes the application and/or otherwise ends the trip, the data may be removed for all participants and the navigation may end. If one of the participants (e.g. selected contact 404) closes the application and/or otherwise ends the trip, the navigation may be updated and continue for the remaining participants.
  • the floating waypoint e.g. the floating waypoint 406 of Figure 4
  • the floating waypoint may be dynamically updated during the navigation. For example, if one user or selected contact encounters unexpected transportation delays, the floating waypoint may be adjusted in accordance with a recalculation of the route and step durations. Accordingly, locations of the user and selected contacts may be periodically (e.g. from time-to-time, every several seconds, every several minutes, etc.) provided to the user device and/or server calculating the floating waypoint. The user device and/or server may calculate again the route between the updated locations of the user and selected contacts, and again calculate the floating waypoint. [058] In some examples, it may be desired for the waypoint to be fixed (e.g. not necessarily dynamically update until requested).
  • user input may be provided to lock in a waypoint for the user and selected contacts to meet.
  • a user may select (e.g. tap, click on, swipe across) the icon used to represent the floating waypoint to turn the floating waypoint into a fixed waypoint (e.g. lock in the waypoint).
  • the icon may then change from an icon indicative of a floating waypoint to one indicative of a fixed waypoint (e.g. from dotted lines to solid lines).
  • the application may suggest venues near the waypoint calculated in block 304.
  • a user may select a location at which the participants can meet, for instance a coffee shop, restaurant, etc., by simply selecting (e.g. tapping, swiping, touching) the floating waypoint.
  • a user interface button or other icon may be used to initiate venue suggestions.
  • the application e.g. on the client and/or server
  • FIG. 5 is a schematic illustration of a user device screen illustrating a display of suggested venues in accordance with examples described herein.
  • the display screen 500 provides a location of a user 502, a selected contact 504, and a group of suggested venues 506 near the floating waypoint.
  • the information on the display screen 500 may be similar (e.g. the same) on a user device of a user initiating a meeting, and on the devices of those selected contacts that agreed to participate in the navigation.
  • the suggested venues 506 may only be presented to the user who is the initiator of the meeting. Names of the suggested venues 506 may also be shown on the display (shown in the upper left corner in Figure 5).
  • the venues may be listed (and/or displayed with ordered numbers) in an order in accordance with their distance from the floating waypoint (which may, for example, represent the midpoint between participants in time or distance).
  • the user may select (e.g. tap, swipe, touch) one of the venues to lock the venue in as the waypoint (e.g. in block 308 of Figure 3).
  • the location of the waypoint may be provided to all selected contacts who accepted the meeting, and may be passed to navigation applications on their respective devices for navigation to the waypoint.
  • the icon representing the floating waypoint may be removed from the display 200.
  • a user also has the option to type in a specific store or location to meet, which may then also be plotted along with the suggested venues within the search radius.
  • a user may drag a floating waypoint to a specific location to lock in the specific location as the waypoint.
  • user input may be received to lock in the waypoint.
  • the user input may, for example, be an acknowledgment (or absence of further action) of the floating waypoint as the waypoint.
  • the user input may, for example, be a selection of a suggested venue, or manually entered venue (which manually-entered venue may be selected based on a review of the floating waypoint and/or suggested venues).
  • the user input may be received by the user device and/or by the server.
  • the waypoint may be provided to the user devices of the selected contacts in block 310 (e.g. by text message, email, SMS, or through their waypoint navigation application).
  • the waypoint navigation application on the client devices being used by the selected contacts may then calculate a route to the waypoint.
  • locations of the meeting participants and/or the waypoint itself may be updated.
  • the floating waypoint may be updated from time to time, and an updated location of the floating waypoint may be provided to all involved devices and routes for the contacts updated from time to time in accordance with the updated waypoint location.
  • the location of users and selected contacts on a display may be updated from time to time so the meeting participants can see where each is, and the progress along the routes.
  • an icon indicating the waypoint may change after arrival of at least one participant.
  • the waypoint may be indicated by a dot of a particular color (e.g.
  • each meeting participant may be indicated by a respective colored dot on the display.
  • a portion of the icon (e.g. dot) indicating the waypoint may turn a color associated with the participant. In this manner, a visual indication may be provided of the number and identity of users who have arrived at the waypoint.
  • the initiator of the meeting may cancel the meeting at any time, by sending a request to the other user devices and/or server, which would cause an end to the navigation on all participants' devices.
  • the initiator of the meeting may un-invite one or more participants from the meeting by transmitting a signal to the participants' devices and/or the server to direct a signal to the participants' devices, which would cause an end to the navigation on those participants' devices.
  • one or more of the participants may select an option to enter corridor navigation mode.
  • the application may present suggested venues within a predetermined distance from the participant's route that meet one or more criteria (e.g. coffee shop, restaurant, gas station).
  • the participant may select a venue in corridor navigation mode, to navigate to while en route to the waypoint.
  • a route may be charted that includes the venue selected in corridor navigation mode.
  • the floating waypoint may update from time to time taking into account the participant's side trip.
  • a chat feature may also be provided allowing for participants to send messages to one another within the waypoint navigation application. On closing the navigation, the chats may be deleted.
  • users may continue to be displayed as individual icons, which may allow the participants to continue to navigate until they find one another - e.g. the participants may be on opposite blocks due to parking, and wish to see exactly where other users of their party are.

Abstract

Examples of methods, systems, and computer-readable media for Waypoint Navigation are described herein. Floating waypoints may be identified such that meeting participants have equal travel time to the floating waypoint. Floating waypoints may be dynamically updated in some examples. In some examples, a floating waypoint may become a fixed waypoint responsive to user selection and/or selection of a suggested venue within a radius of the floating waypoint.

Description

WAYPOINT NAVIGATION SYSTEM. APPLICATIONS. AND METHODS
CROSS-REFERENCE TO RELATED APPLICATION
[001] This application claims the benefit under 35 U.S.C. § 1 19 of the earlier filing date of US Provisional Application 62/1 19,054, filed Feb. 20, 2015, which application is hereby incorporated by reference in its entirety and for any purpose.
BACKGROUND
[002] Present navigation applications available on computers, smart phones, and tablet devices lack functionality in peer-to-peer navigation. One end user can select an address of a contact from their digital address book, and then navigate with relative ease to that location. Points of interest can be selected between these geographical locations manually, but cannot be plotted automatically. However, current navigation applications are not capable of routing two or more parties from respective starting locations to a common meeting location that is equidistant in time.
SUMMARY
[003] Examples of systems described herein include a server running an application. The server may be configured to send an request from a first client at a first location to a second client at a second location to navigate to a common location, responsive to receiving acceptance of the request from the second client. The server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the second client from the second location such that the first client and the second client arrive at the same time. The estimated time of arrival may take into account at least one of mode of transportation, traffic, or route details.
[004] In some examples, the server may be configured to update the common meeting location during navigation of the first and second clients to the location.
[005] In some examples, the server may be further configured to identify the common meeting location by receiving location information specifying the first and second locations from GPS units associated with the first and second clients, receiving information relating to a route between the first and second locations, and calculating a midpoint of the route. [006] In some examples, the route comprises a plurality of steps, each of the plurality of steps having a duration. Calculating the midpoint of the route may include identifying a midpoint step of the plurality of steps occurring during a midpoint of a total route time, and calculating a fraction of the midpoint step to be elapsed before reaching the midpoint of the total route time, and identifying a location at the fraction of the midpoint step.
[007] In some examples, the server may be further configured to dynamically update the common meeting location based on receipt of updated location information from the first and second clients.
[008] In some examples, the server may be further configured to send a request from the first client at the first location to a third client at a third location to navigate to the common location, responsive to receiving acceptance of the request from the third client. The server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location such that the first client, second client, and third client arrive at the same time.
[009] In some examples, the server may be further configured to receive a request from the first client to uninvite the second client and, responsive to receipt of the request from the first client to uninvited the second client, re-determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location.
[010] Examples of methods are described herein. Example methods may include receiving location information from client devices associated with selected contacts that have accepted an invitation sent from a user to participate in a navigation, identifying a floating waypoint at a location between the client devices, and transmitting location information regarding the floating waypoint to the client devices.
[011] In some examples, the location information is received from GPS units associated with each of the client devices.
[012] In some examples, methods may include receiving updated location information from the client devices, identifying an updated floating waypoint based on the updated location information, and transmitting location information regarding the updated floating waypoint to the client devices. [013] In some examples, methods may further include receiving user input indicative of a request to lock in the floating waypoint and ceasing updates of the floating waypoint responsive to the user input indicative of the request to lock in the floating waypoint.
[014] In some examples, methods may further include receiving a request to suggest venues near the floating waypoint, presenting a list of venues within a threshold distance of the floating waypoint, receiving an indication of a selected venue from the list of venues, and transmitting location information regarding the selected venue to the client devices.
[015] In some examples, methods may further include displaying the list of venues to a user in an order of distance from the floating waypoint.
[016] In some examples, methods may further include displaying the floating waypoint using a first icon and, responsive to receipt of the user input indicative of a request to lock in the floating waypoint, displaying the floating waypoint using a second icon.
[017] In some examples, the first icon may include dotted lines and the second icon may include solid lines.
[018] Examples of computer readable media are described herein. Some example computer readable media may be encoded with instructions, that, when executed by one or more processing unit(s), cause a system to perform actions, including instructions for providing an invitation, from a user, to a selected contact to join a navigation, responsive to receipt of an indication of acceptance of the invitation, receiving location information from a GPS unit of a device associated with the selected contact, providing a location of a device associated with the user and the location information from the GPS unit of the device associated with the selected contact to a navigation application and receiving, from the navigation application, a route between the location of the device associated with the user and the location information from the GPS unit of the device associated with the selected contact, identifying a floating waypoint such that a travel time for the user and selected contact to the floating waypoint are equal within a predetermined threshold time, and providing location information of the floating waypoint to the device associated with the selected contact.
[019] In some examples, the route has a total duration and includes a plurality of steps, each having a duration, and instructions for identifying the floating waypoint comprise instructions for identifying a midpoint step of the plurality of steps occurring during a midpoint of the duration and a fraction of the midpoint step occurring at the midpoint of the duration, the instructions for identifying the floating waypoint further comprising identifying a location at the fraction of the midpoint step.
[020] Some example computer readable media may include instructions for providing suggested venues within a radius of the floating waypoint.
[021] Some example computer readable media may further include instructions for receiving an indication from the user of a selected one of the suggested venues, and providing location information of the selected one of the suggested venues to the device associated with the selected contact.
[022] Some example computer readable media may further include instructions for updating a display with a dynamic location of the user, the selected contact, and the floating waypoint.
BRIEF DESCRIPTION OF THE DRAWINGS
[023] Figure 1 is a schematic illustration of the Waypoint Navigation System in accordance with an embodiment of the disclosure.
[024] Figure 2 is a flowchart of initiating use of a waypoint navigation application in accordance with examples described herein.
[025] Figure 3 is a flowchart of a method for waypoint navigation in accordance with examples described herein.
[026] Figure 4 is a schematic illustration of a user device screen illustrating a floating waypoint in accordance with examples described herein.
[027] Figure 5 is a schematic illustration of a user device screen illustrating a display of suggested venues in accordance with examples described herein.
DETAILED DESCRIPTION
[028] Certain details are set forth below to provide a sufficient understanding of embodiments of the disclosure. However, it will be clear to one skilled in the art that embodiments of the disclosure may be practiced without various aspects of these particular details. In some instances, well-known circuits, control signals, timing protocols, computer system components, and software operations have not been shown in detail in order to avoid unnecessarily obscuring the described embodiments of the disclosure. [029] This disclosure describes embodiments of the navigational application features contained with the Waypoint Navigation System, including a Waypoint Navigation Application installed on clients. Responsive to a request from at least one of two or more users, the Waypoint Navigation Application may route the two or more users from respective starting locations to a common meeting location that is equidistant in time between the starting locations of the two or more users. The meeting point and routing for each user selected by the Waypoint Navigation Application may be based on traffic data and geographical route navigation.. Further, the Waypoint Navigation Application may plot a radius based search for nearby points of interest along the route for each of at least the two users.
[030] The Waypoint Navigation Application may also be used for direct line of sight navigation, such as in aeronautical or marine applications. The Waypoint Navigation application may also include, a "Floating Midpoint" technology where the meeting point is adjusted in real time as each of the at least two users converge based on differences in speed, caused by situations such as unforeseen navigational hurdles (e.g., accident) or differences in modes of transportation (e.g., car vs. bicycle). In these cases the Waypoint Navigation Application may adjust the midpoint based on to differences in approach speed. While in a "Free Float" mode, the Waypoint Navigation Application may continually shift the meeting point toward the slower user, which may provide an accurate prediction of arrival time at the meeting point.
[031] The Waypoint Navigation Application may also include corridor waypoint selection that includes searching a lateral distance along any plotted route, such as looking for a coffee or food along a route. The lateral distance may be selectable by a user, and a user may be able to select a mid-point location to add to the route from the corridor search.
[032] The Waypoint Navigation Application may be installed on a client for use by a user of the client. Generally, clients described herein may include devices having one or more processing unit(s) (e.g. processors) and computer readable media (e.g. memory) encoded with executable instructions causing the device to perform functions described herein, and/or display user interfaces described and/or shown herein.
[033] In some embodiments, the Waypoint Navigation system may make use of a third party server that is used to store the algorithm and communicate with data providers (e.g., map, traffic, etc.) to provide real time traffic data and map plotting data to the clients running the Waypoint Navigation Application. The routing information may be communicated over a communications network (e.g., cellular or Wi-Fi) to the clients running the Waypoint Navigation Application. The client is able to access locations of other clients running the Waypoint Navigation Application (with real time permission) in order to plot navigational routes by accessing the algorithm located on the third party server.
[034] In some examples, the Waypoint Navigation Application may not be required, for example one or more coordinate set(s) may be entered by a client (e.g. using a third party application) and a waypoint may be automatically calculated and returned for use (e.g. within the third party application). The third party client may (e.g. through their own servers) make a call to servers hosting the waypoint calculation, deliver their coordinates, and be returned the waypoint calculated using methods described herein.
[035] Figure 1 illustrates Waypoint Navigation system 100 according to an embodiment of the disclosure. Each of a plurality of clients 102(1-N) may be implemented using a computing device, including but not limited to a laptop, a desktop, a computer, a tablet, a media device, a smart phone, cellular phone or other mobile device, or any combination or sub-combination of the same. Each of the plurality of clients 102(1-N) may include a computer readable medium 103(1-N) (or multiple computer readable media in some examples) encoded with executable instructions that may be executable by one or more processing units (not shown in Figure 1) of the client 102(1-N) to provide a user interface for transmitting, receiving, encoding, and/or decoding data related to the Waypoint Navigation Application on the respective client 102(1-N). In some embodiments, the clients 102(1-N) include a speaker for providing audio messages to a user or another person.
[036] Each of the clients 102(1-N) may be coupled to a network 110 to send and receive data. The network 110 may be implemented using one or more networks, such as local area networks (LANs), wide area networks (WANs), metropolitan area networks (MANs), cellular networks, and/or the Internet. Communications provided to, from, and within the network 110 may wired and/or wireless, and further may be provided by any networking devices known in the art, now or in the future. Devices communicating over the network 110 may communicate with any communication protocol, including, but not limited to, TCP/IP, UDP, RS-232, and IEEE 802.11. [037] Each of the clients 102(1-N) may communicate with the data servers 120. Generally, servers described herein may include one or more processing unit(s) (e.g. processors) and computer readable media (e.g. memory) encoded with executable instructions to perform server functions described herein. It is to be understood that the arrangement of components is quite flexible, and in some examples, a client 102(1-N) may perform some or all of the functions described herein as being performed by a server 120. For example, multiple clients 102(1-N) may send location information to one another and include computer readable media encoded with executable instructions for waypoint navigation described herein to calculate and update a meeting location. In some embodiments, the clients 102(1-N) may communicate to the data servers 120 via the network 1 10 to provide or retrieve data based on a mode of operation. The data servers 120 may include a computer readable medium 123 that is configured to store instruction for the Waypoint Navigation System 124 executable by the processing unit(s) 121. The Waypoint Navigation System 124 may include an algorithm that receives locations of two or more clients 102(1-N) and calculates a meeting location and routing between two or more clients 102(1-N) based on location information received from each of the two or more clients 102(1-N), and provides the routing information and meeting location to each of the two or more clients 102(1-N). The locations of the clients 102(1-N) may be provided to the system 124 by, for example, one or more GPS devices present in one or more of the clients 102(1-N). In other examples, the locations may be determined through other data received from the clients 102(1-N), such as but not limited to, cellular data. The Waypoint Navigation System 124 may also provide current locations of the two or more clients 102(1-N) to each of the two or more clients 102(1-N). In some embodiments, the Waypoint Navigation System 124 may communicate with one or more third party servers 150 to retrieve with data (e.g., map, traffic, etc.) from third party data providers. The retrieved data from the third party servers 150 may be used by the Waypoint Navigation System 124 algorithm to calculate the routing and meeting location based on real time traffic data and map plotting data. The real time traffic data may be drawn from a number of sources via the third party servers 150. The meeting location selected by the Waypoint Navigation System 124 may be a best (e.g., fastest, equidistant, etc.) point to navigate to for each of the clients 102(1-N) connected on the application at that time. Further, the Waypoint Navigation System 124 may also plots a radius based search for nearby points of interest (e.g., coffee shops, restaurants, bars, parking lots and other desirable meeting locations) to provide to each of the two or more clients 102(1-N). The routing information determined by the algorithm of the Waypoint Navigation System 124, in some examples, may be line of sight navigation, such as in aeronautical, marine, or off-road applications.
[038] In some embodiments, the Waypoint Navigation System 124 may adjust the meeting location in real time based on differences in speed, caused by situations such as unforeseen navigational hurdles (e.g., accident) or differences in modes of transportation (e.g., car vs. bicycle). For example, the Waypoint Navigation System 124 may adjust the midpoint based on to differences in approach speed. While in a "Free Float" mode, the Waypoint Navigation System 124 may continually shift the meeting point toward the slower user, which may provide an accurate prediction of arrival time at the meeting point.
[039] In some embodiments, the Waypoint Navigation System 124 may also include corridor waypoint selection request from a client 102(1-N). Responsive to the corridor waypoint selection request, the Waypoint Navigation System 124 may search a lateral distance along any plotted route, such as looking for a type of venue (e.g. coffee or food) along a route. The lateral distance may be selectable by a user at a client 102(1-N), and the selected lateral distance may be provided to the data server 120 by the client 102(1-N). In some examples, a client 102(1-N) may receive a mid-point location selection from a user to add to the route from the corridor search, which may be provided to the data server 120.
[040] In an example of the corridor waypoint search, the user input a search for a "coffee shop" and selected a ½ mile lateral search distance on each side of their pre-piotted navigational route provided by the Waypoint Navigation System 124, and the client 102(1-N) may display all waypoints related to the "coffee shop" search on a map within ½ mile along the route. A user may select one of the waypoints on the client 102(1-N), and the Waypoint Navigation System 124 may update the route to include the selected waypoint. Current applications do not allow a user to search along the route with a user selected corridor distance. This feature may allow the user to determine when they want to stop, and how far off of the route they want to stray to retrieve the coffee.
[041] Exemplary use cases are described herein, including screen shots and/or actions of user devices (which may be, for example shown on the displays of any of clients 102 (1-N) of Figure 1), for examples of the Waypoint Navigation system described with reference to Figure 1. The examples described are for illustration purposes only, and other layouts, ordering of actions, and/or user options may be implemented without departing from the nature of the disclosure.
[042] Figure 2 is a flowchart of initiating use of a waypoint navigation application in accordance with examples described herein. The method 200 includes selecting a contact at block 202, determining if the selected contact is in network in block 204, and if the selected contact is not in network, sending a link for download or registration to the selected contact in block 206. After download and/or registration, or if the selected contact is already in network, the method includes sending a notification to the selected contact in block 20S, and determining if the selected contact accepted the notification in block 210. If the selected contact does not accept, the method ends in block 212. If the selected contact does accept, the method includes receiving the location information of the selected contact in block 214.
[043] The method 200 includes selecting a contact 202. For example, a user device (e.g. any of client(s) 102(1-N) of Figure 1) may display a drop down menu, and a user may begin to enter (e.g. type, swipe, select) a name of a contact the user would like to meet. In some examples, the contact may be selected in another application (e.g. social media, calendar, email client) and the user may request to navigate to that contact. In some examples, as a user types a contact name in an entry box, a drop-down menu of suggested contacts may appear, and the user can select one contact from the drop-down menu. In some examples, "favorite" or recently-selected contacts may be starred or include some other indication of their recent use or favorite status.
[044] The user device may identify, in block 204, whether the selected contact is in the user's network. For example, the user device may query a server (e.g. the server 120 of Figure 1) regarding whether the selected contact is a registered user of the waypoint navigation system. The query may be made, for example, using the selected contact's name, address, email address, or other information. If the selected contact is not in the user's network, at block 206, the user device and/or server may send a link or other invitation to the contact (e.g. via email or SMS) to download the waypoint navigation application and/or register with a waypoint navigation server (e.g. server 120).
[045] If the selected contact is in the user's network (or becomes in the user network following receipt of the link in block 206), a notification may be sent to the selected contact in block 208. The user device and/or the server may send the notification in block 208. In some examples, when the selected contact does not have an open, running waypoint navigation application open, a push notification may be sent to the selected contact (e.g. via email and/or SMS) that the user wants to meet the selected contact. In some examples, when the selected contact does have an open, running waypoint navigation application example described herein, a pop-up window or other display may appear indicating that the user wants to meet with the selected contact.
[046] The selected contact may affirm or reject the meeting request in block 210. If the selected contact rejects the meeting request, in block 212 the method ends, and no location information may be exchanged in some examples and no waypoint is calculated. If the selected contact accepts the meeting request, in block 213, a location of the contact may be received (e.g. by the server 120 and/or a user device being operated by the user, such as a client 102(1-N) of Figure 1). Accordingly, the user device and/or the server may receive location information (e.g. GPS data) from a first user device being operated by the requesting user and location information (e.g. GPS data) from a second user device being operated by the selected contact. The locations of the user and the requested contact may be different, for example, from addresses stored in a contact database on any of the devices - e.g. the user and selected contact may not be at home or at work when the meeting is requested, although they may be in some examples.
[047] The method 200 of Figure 2 may be performed for any number of selected contacts.
For example, a user may desire to meet with 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or another number of selected contacts. Each selected contact may be invited to join the waypoint navigation, and location information of all selected contacts, once they have accepted a join invitation, may be received by the requesting user and/or by other of the selected contacts.
[048] Once the contact(s) have been selected and at least one contact accepts the invitation to show their location, the Application may identify a meeting location for those contacts, which may be based on mode of transportation, current traffic conditions and navigational (e.g. route) options. In some examples, the application may identify a meeting location as an exact mid-point (e.g. by distance and/or by time to destination) between the contacts. In some examples, the application may identify a meeting location as a closest venue (e.g. coffee shop, restaurant) to an exact mid-point (e.g. by distance and/or time to destination). In some examples, the application may provide a group of suggested meeting locations within a threshold distance and/or time of travel from an exact mid-point between the contacts.
[049] Figure 3 is a flowchart of a method for waypoint navigation in accordance with examples described herein. A common meeting location may also be referred to as a waypoint herein.
[050] At block 302, one or more contact(s) may accept a user's request to meet, and their location information may be received. The contacts) location information may be received by the user's user device (e.g. one of clients I02(l-N) of Figure 1) and/or by a server (e.g. server 120 of Figure 1). The location information may be provided, for example, by a GPS unit in a device used by the contacts) (e.g. cell phone, tablet, etc.), and/or may be determined from other signals received from the contact(s)'s device(s) (e.g. cell phone signals).
[051] At block 304, the waypoint navigation application may identify a floating waypoint between the contacts). The floating waypoint may be identified, for example, as a midpoint between the contact(s). The floating waypoint may be based on mode of transportation, current traffic conditions and navigational (e.g. route) options. For example, the floating waypoint may be identified as a location that has an equal projected travel time for each of the contact(s). The travel time may, for example, be based on a mode of transportation (e.g. driving, public transit, walking) which may be specified by each of the contacts) (e.g. in settings of their waypoint application). The floating waypoint may be identified, for example by the user device (e.g. one of clients 102(1-N) of Figure 1) and/or by the server (e.g. server 120 of Figure 1).
[052] In some examples, the floating waypoint may be identified using durations of steps of a route. For example, a route may be calculated between the user and the location of an invited contact. The route may be calculated by a navigation application resident on the user's device and/or the server. For example, Google Maps, MapQuest, Bing Maps, or another navigation application may be used to calculate a route. Generally, the route may include multiple steps (e.g. straight travel segments between turns). Each step may have a duration, which may be based on the mode of transportation of the user. A threshold may be stored for the midpoint (e.g. a threshold of 1 minute may indicate that no contact should have a projected travel time greater than 1 minute longer than any other participant). [053] A distance between points A and B may be written as D(A,B). A time to go from A to B may be written as T(A,B). A distance traveler A can go for time T may be written as DT (A, T). An example floating waypoint calculation begins with calculation of a route between A and B. In one example, the route is 100 minutes and includes 5 steps as follows: step 1 (10 minutes); step 2 (20 minutes); step 3 (10 minutes); step 4 (30 minutes), step 5 (30 minutes). If the step durations are the same for both contacts and a midpoint is desired, the midpoint should be during step 4. Moreover, if a midpoint is desired, it would be at 50 minutes, which is 10 minutes into step 4 (e.g, 50-10-20-10). That is 1/3 of the distance of step 4 (e.g. 10/30). Accordingly, the floating waypoint may be defined at a location that is 1/3 of the way along step 4.
[054] In some examples having more than 2 participants in a navigation, the server may utilize a multi-party algorithm to identify the floating waypoint. In some examples, the server and/or user device may identify routes to road points in multiple (e.g. all) grid locations within a radius from each party, equaling the distance between two parties (e.g. the two furthest parties in some examples). In this mariner, travel times for each participant to locations within a radius may be calculated. The system may identify grid sectors having travel times for all parties within a threshold (e.g. one, two, three minute) arrival range window. The grid sectors meeting that criteria (and/or a location at a predetermined, such as central, location of the grid sector) may then be plotted for selection by the inviting member.
[055] Generally, then, methods for identifying floating waypoints as described herein may calculate a route (and/or receive a route calculation) between the current positions of the participants. The route may include a total duration, a plurality of steps and a duration for each step. A desired duration to the floating waypoint may be identified (e.g. by dividing the total duration by 2), and may be the same for each of the participants. The step during which the desired duration occurs may be identified, and a fractional distance into the step at which the desired duration occurs may be identified. A location that fractional distance into the step may be identified (e.g. using a navigation application), and that location may be identified as a floating waypoint. In some examples, a selected contact may accept an invitation to join the navigation after the floating waypoint has been identified and/or after a waypoint has been locked in. The initiator of a meeting (e.g. user) may be prompted to retain the floating waypoint and/or locked in waypoint after the addition of another contact, or to recalculate the waypoint. If the initiator indicates to recalculate the waypoint, the waypoint identification process may repeat, this time including the location information of the additional contact.
[056] Figure 4 is a schematic illustration of a user device screen illustrating a floating waypoint in accordance with examples described herein. The display screen 400 provides a location of a user 402, a selected contact 404, and a floating waypoint 406. The information on the display screen 400 may be similar (e.g. the same) on a user device of a user initiating a meeting, and on the devices of those selected contacts that agreed to participate in the navigation. The floating waypoint may be illustrated with an icon different than those used to display the current location of the user 402 and the selected contact 404. The icon used to illustrate the floating waypoint 406 may be selected to provide an indication that the waypoint 406 is floating. For example, dotted lines may be used to illustrate the floating waypoint 406, while a filled dot may be used to illustrate the current locations of user 402 and selected contact 404. Additionally or instead, the icon used to illustrate the floating waypoint 406 may be larger than that used to illustrate the user 402 and/or the selected contact 404. The floating waypoint 406 may be dynamic. For example, if additional selected contacts are added to the anticipated meeting, the floating waypoint 406 location may change. Additionally, if one or more of the contacts involved in the meeting change current location, the floating waypoint 406 may change such that it is maintained at a location providing equal transit time for all participants. If the user who initiated the meeting (e.g. the user 402) closes the application and/or otherwise ends the trip, the data may be removed for all participants and the navigation may end. If one of the participants (e.g. selected contact 404) closes the application and/or otherwise ends the trip, the navigation may be updated and continue for the remaining participants.
[057] The floating waypoint, e.g. the floating waypoint 406 of Figure 4, may be dynamically updated during the navigation. For example, if one user or selected contact encounters unexpected transportation delays, the floating waypoint may be adjusted in accordance with a recalculation of the route and step durations. Accordingly, locations of the user and selected contacts may be periodically (e.g. from time-to-time, every several seconds, every several minutes, etc.) provided to the user device and/or server calculating the floating waypoint. The user device and/or server may calculate again the route between the updated locations of the user and selected contacts, and again calculate the floating waypoint. [058] In some examples, it may be desired for the waypoint to be fixed (e.g. not necessarily dynamically update until requested). Accordingly, referring back to Figure 3, at block 308, user input may be provided to lock in a waypoint for the user and selected contacts to meet. For example, in some examples, a user may select (e.g. tap, click on, swipe across) the icon used to represent the floating waypoint to turn the floating waypoint into a fixed waypoint (e.g. lock in the waypoint). The icon may then change from an icon indicative of a floating waypoint to one indicative of a fixed waypoint (e.g. from dotted lines to solid lines).
[059] In some examples, it may be desirable to navigate the participants to a venue, and not simply a midpoint or other distance-determined location. Accordingly, referring back to Figure 3, at block 306, the application may suggest venues near the waypoint calculated in block 304.
[060] In some examples, a user may select a location at which the participants can meet, for instance a coffee shop, restaurant, etc., by simply selecting (e.g. tapping, swiping, touching) the floating waypoint. In other examples, a user interface button or other icon may be used to initiate venue suggestions. The application (e.g. on the client and/or server) may then provide options within a predetermined radius of the floating waypoint. Examples of predetermined radii include 0.5 miles in an urban setting, and 1 mile in a rural setting. Other radii may be used in other examples.
[061] Figure 5 is a schematic illustration of a user device screen illustrating a display of suggested venues in accordance with examples described herein. The display screen 500 provides a location of a user 502, a selected contact 504, and a group of suggested venues 506 near the floating waypoint. The information on the display screen 500 may be similar (e.g. the same) on a user device of a user initiating a meeting, and on the devices of those selected contacts that agreed to participate in the navigation. In some examples, the suggested venues 506 may only be presented to the user who is the initiator of the meeting. Names of the suggested venues 506 may also be shown on the display (shown in the upper left corner in Figure 5). In some examples, the venues may be listed (and/or displayed with ordered numbers) in an order in accordance with their distance from the floating waypoint (which may, for example, represent the midpoint between participants in time or distance). The user may select (e.g. tap, swipe, touch) one of the venues to lock the venue in as the waypoint (e.g. in block 308 of Figure 3). Once locked in as a waypoint, the location of the waypoint may be provided to all selected contacts who accepted the meeting, and may be passed to navigation applications on their respective devices for navigation to the waypoint. In some examples, once a venue is selected as the waypoint, the icon representing the floating waypoint may be removed from the display 200. In some examples, a user also has the option to type in a specific store or location to meet, which may then also be plotted along with the suggested venues within the search radius. In some examples, a user may drag a floating waypoint to a specific location to lock in the specific location as the waypoint.
[062] Referring again to Figure 3, in block 308, user input may be received to lock in the waypoint. The user input may, for example, be an acknowledgment (or absence of further action) of the floating waypoint as the waypoint. The user input may, for example, be a selection of a suggested venue, or manually entered venue (which manually-entered venue may be selected based on a review of the floating waypoint and/or suggested venues). The user input may be received by the user device and/or by the server.
[063] Following the user input (or absence of input in examples where absence of input indicates a desire to proceed with the floating waypoint), the waypoint may be provided to the user devices of the selected contacts in block 310 (e.g. by text message, email, SMS, or through their waypoint navigation application). The waypoint navigation application on the client devices being used by the selected contacts may then calculate a route to the waypoint.
[064] In block 312, locations of the meeting participants and/or the waypoint itself may be updated. In examples where a floating waypoint is used, the floating waypoint may be updated from time to time, and an updated location of the floating waypoint may be provided to all involved devices and routes for the contacts updated from time to time in accordance with the updated waypoint location. The location of users and selected contacts on a display may be updated from time to time so the meeting participants can see where each is, and the progress along the routes. As a meeting participant arrives at the waypoint, all participants may receive a notification that the arriving participant has arrived. In some examples, an icon indicating the waypoint may change after arrival of at least one participant. For example, the waypoint may be indicated by a dot of a particular color (e.g. red), and the color may change (e.g. to green) once at least one participant has arrived. In some examples, the location of each meeting participant may be indicated by a respective colored dot on the display. As each meeting participant arrives at the waypoint, a portion of the icon (e.g. dot) indicating the waypoint may turn a color associated with the participant. In this manner, a visual indication may be provided of the number and identity of users who have arrived at the waypoint.
[065] In some examples, the initiator of the meeting may cancel the meeting at any time, by sending a request to the other user devices and/or server, which would cause an end to the navigation on all participants' devices. In some examples, the initiator of the meeting may un-invite one or more participants from the meeting by transmitting a signal to the participants' devices and/or the server to direct a signal to the participants' devices, which would cause an end to the navigation on those participants' devices.
[066] In some examples, during navigation, one or more of the participants may select an option to enter corridor navigation mode. In corridor navigation mode, the application may present suggested venues within a predetermined distance from the participant's route that meet one or more criteria (e.g. coffee shop, restaurant, gas station). The participant may select a venue in corridor navigation mode, to navigate to while en route to the waypoint. A route may be charted that includes the venue selected in corridor navigation mode. When a participant navigates to a venue in corridor navigation mode during navigation to a floating waypoint, the floating waypoint may update from time to time taking into account the participant's side trip.
[067] During navigation, a chat feature may also be provided allowing for participants to send messages to one another within the waypoint navigation application. On closing the navigation, the chats may be deleted.
[068] In some examples, as users arrive at the waypoint, they may continue to be displayed as individual icons, which may allow the participants to continue to navigate until they find one another - e.g. the participants may be on opposite blocks due to parking, and wish to see exactly where other users of their party are.
[069] Various illustrative components, blocks, configurations, modules, and steps have been described above generally in terms of their functionality. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. [070] The previous description of the disclosed embodiments is provided to enable a person skilled in the art to make or use the disclosed embodiments. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope possible consistent with the principles and novel features as previously described.

Claims

CLAIMS What is claimed is:
1. A system, comprising:
a server running an application, the server configured to send an request from a first client at a first location to a second client at a second location to navigate to a common location, responsive to receiving acceptance of the request from the second client, the server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the second client from the second location such that the first client and the second client arrive at the same time, wherein the estimated time of arrival may take into account at least one of mode of transportation, traffic, or route details.
2. The system of claim 1 , wherein the server is configured to update the common meeting location during navigation of the first and second clients to the location.
3. The system of claim 1, wherein the server is further configured to identify the common meeting location by:
receiving location information specifying the first and second locations from GPS units associated with the first and second clients;
receiving information relating to a route between the first and second locations; and
calculating a midpoint of the route.
4. The system of claim 3 wherein the route comprises a plurality of steps, each of the plurality of steps having a duration and wherein calculating the midpoint of the route comprises identifying a midpoint step of the plurality of steps occurring during a midpoint of a total route time, and calculating a fraction of the midpoint step to be elapsed before reaching the midpoint of the total route time, and identifying a location at the fraction of the midpoint step.
5. The system of claim 1 wherein the server is further configured to dynamically update the common meeting location based on receipt of updated location information from the first and second clients.
6. The system of claim 1, wherein the server is further configured to send a request from the first client at the first location to a third client at a third location to navigate to the common location, responsive to receiving acceptance of the request from the third client, the server may determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location such that the first client, second client, and third client arrive at the same time.
7. The system of claim 6, wherein the server is further configured to receive a request from the first client to uninvite the second client and, responsive to receipt of the request from the first client to uninvited the second client, re-determine the common meeting location based on estimated time of arrival of the first client from the first location and the third client from the third location.
8. A method for navigation, the method comprising:
receiving location information from client devices associated with selected contacts that have accepted an invitation sent from a user to participate in a navigation;
identifying a floating waypoint at a location between the client devices; and transmitting location information regarding the floating waypoint to the client devices.
9. The method of claim 8, wherein the location information is received from GPS units associated with each of the client devices.
10. The method of claim 8, further comprising receiving updated location information from the client devices, identifying an updated floating waypoint based on the updated location information, and transmitting location information regarding the updated floating waypoint to the client devices.
11. The method of claim 8, farther comprising receiving user input indicative of a request to lock in the floating waypoint and ceasing updates of the floating waypoint responsive to the user input indicative of the request to lock in the floating waypoint.
12. The method of claim 8, further comprising receiving a request to suggest venues near the floating waypoint, presenting a list of venues within a threshold distance of the floating waypoint, receiving an indication of a selected venue from the list of venues, and transmitting location information regarding the selected venue to the client devices.
13. The method of claim 12, further comprising displaying the list of venues to a user in an order of distance from the floating waypoint.
14. The method of claim 11, further comprising displaying the floating waypoint using a first icon and, responsive to receipt of the user input indicative of a request to lock in the floating waypoint, displaying the floating waypoint using a second icon.
15. The method of claim 14, wherein the first icon includes dotted lines and the second icon includes solid lines.
16. At least one computer readable media encoded with instructions, that, when executed by one or more processing unit(s), cause a system to perform actions, including instructions for:
providing an invitation, from a user, to a selected contact to join a navigation;
responsive to receipt of an indication of acceptance of the invitation, receiving location information from a GPS unit of a device associated with the selected contact;
providing a location of a device associated with the user and the location information from the GPS unit of the device associated with the selected contact to a navigation application and receiving, from the navigation application, a route between the location of the device associated with the user and the location information from the GPS unit of the device associated with the selected contact; identifying a floating waypoint such that a travel time for the user and selected contact to the floating waypoint are equal within a predetermined threshold time; and
providing location information of the floating waypoint to the device associated with the selected contact.
17. The at least one computer readable media of claim 16, wherein the route has a total duration and includes a plurality of steps, each having a duration, wherein the instructions for identifying the floating waypoint comprise instructions for identifying a midpoint step of the plurality of steps occurring during a midpoint of the duration and a fraction of the midpoint step occurring at the midpoint of the duration, the instructions for identifying the floating waypoint further comprising identifying a location at the fraction of the midpoint step.
18. The at least one computer readable media of claim 16, further comprising instructions for providing suggested venues within a radius of the floating waypoint.
19. The at least one computer readable media of claim IS, further comprising instructions for receiving an indication from the user of a selected one of the suggested venues, and providing location information of the selected one of the suggested venues to the device associated with the selected contact.
20. The at least one computer readable media of claim 16, further comprising updating a display with a dynamic location of the user, the selected contact, and the floating waypoint.
PCT/US2016/018771 2015-02-20 2016-02-19 Waypoint navigation system, applications, and methods WO2016134315A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562119054P 2015-02-20 2015-02-20
US62/119,054 2015-02-20

Publications (1)

Publication Number Publication Date
WO2016134315A1 true WO2016134315A1 (en) 2016-08-25

Family

ID=56692495

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2016/018771 WO2016134315A1 (en) 2015-02-20 2016-02-19 Waypoint navigation system, applications, and methods

Country Status (1)

Country Link
WO (1) WO2016134315A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021001911A1 (en) 2021-04-13 2022-10-13 Mercedes-Benz Group AG Method and system for determining an origin between two entities
DE102021001926A1 (en) 2021-04-13 2022-10-13 Mercedes-Benz Group AG Method and system for determining a seed point between entities

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7268703B1 (en) * 2003-09-18 2007-09-11 Garmin Ltd. Methods, systems, and devices for cartographic alerts
US20070252851A1 (en) * 2006-04-26 2007-11-01 Sony Corporation Image processing apparatus, image processing method, and computer program
US7522992B2 (en) * 1999-10-19 2009-04-21 American Calcar Inc. Technique for effective navigation based on user preferences
US7693652B2 (en) * 2006-04-05 2010-04-06 Microsoft Corporation Waypoint adjustment and advertisement for flexible routing
US20100211425A1 (en) * 2009-02-18 2010-08-19 Gunasekaran Govindarajan Arranging on a communications network meetings between persons where the instant estimated time of arrival at a meeting of each prospective attendee is calculated and displayed to the subject attendee, and to all prospective attendees
US20120203833A1 (en) * 2011-02-08 2012-08-09 Audi Ag Method and system for the automated planning of a meeting between at least two participants
US20140114565A1 (en) * 2012-10-22 2014-04-24 Adnan Aziz Navigation of a vehicle along a path
US20140207375A1 (en) * 2013-01-24 2014-07-24 Sap Ag Distribution of location and movement information of meeting participants
US8892359B2 (en) * 2013-01-11 2014-11-18 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for estimating time of arrival for vehicle navigation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522992B2 (en) * 1999-10-19 2009-04-21 American Calcar Inc. Technique for effective navigation based on user preferences
US7268703B1 (en) * 2003-09-18 2007-09-11 Garmin Ltd. Methods, systems, and devices for cartographic alerts
US7693652B2 (en) * 2006-04-05 2010-04-06 Microsoft Corporation Waypoint adjustment and advertisement for flexible routing
US20070252851A1 (en) * 2006-04-26 2007-11-01 Sony Corporation Image processing apparatus, image processing method, and computer program
US20100211425A1 (en) * 2009-02-18 2010-08-19 Gunasekaran Govindarajan Arranging on a communications network meetings between persons where the instant estimated time of arrival at a meeting of each prospective attendee is calculated and displayed to the subject attendee, and to all prospective attendees
US20120203833A1 (en) * 2011-02-08 2012-08-09 Audi Ag Method and system for the automated planning of a meeting between at least two participants
US20140114565A1 (en) * 2012-10-22 2014-04-24 Adnan Aziz Navigation of a vehicle along a path
US8892359B2 (en) * 2013-01-11 2014-11-18 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for estimating time of arrival for vehicle navigation
US20140207375A1 (en) * 2013-01-24 2014-07-24 Sap Ag Distribution of location and movement information of meeting participants

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021001911A1 (en) 2021-04-13 2022-10-13 Mercedes-Benz Group AG Method and system for determining an origin between two entities
DE102021001926A1 (en) 2021-04-13 2022-10-13 Mercedes-Benz Group AG Method and system for determining a seed point between entities

Similar Documents

Publication Publication Date Title
US11665505B2 (en) Identifying and locating users on a mobile network
US9945680B1 (en) Location-based meeting system
US9146115B2 (en) Location enhanced meetings and collaboration
EP2817925B1 (en) Systems and methods for mobile communication integration
US8428869B2 (en) Context enabled address selection
US20100205242A1 (en) Friend-finding system
US10715380B2 (en) Setting a reminder that is triggered by a target user device
CN103968822A (en) Navigation method, apparatus used for navigation and navigation system
WO2011072605A1 (en) Method and terminal for searching interest point
JP2015081919A (en) Estimation of travel destination based on popularity
JP5883892B2 (en) Reservation management apparatus, reservation management method and program
WO2016134315A1 (en) Waypoint navigation system, applications, and methods
CN104807472A (en) Systems and methods for providing interval-based point of interest information
US10631137B2 (en) Client, server, and information sharing system
KR20150116928A (en) Method, Apparatus, and Recording Medium for setting multilateral optimal meeting place
AU2013203926B2 (en) Identifying and locating users on a mobile network
AU2021308716A1 (en) Choice modeling for pickup map display content
AU2016228186A1 (en) Identifying and locating users on a mobile network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16753188

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16753188

Country of ref document: EP

Kind code of ref document: A1