SYSTEM FOR CONNECTING A DRIVER AND A RIDER
A system for connecting a driver and a rider comprises a processor and an interface. The processor is configured to select a driver for a requested ride from the rider. The interface is configured to, in the event that the driver accepts the rider, provide a connect notification to the rider. The connect notification comprises an image associated with the driver, an image associated with the driver's car, and an anonymized interface for contacting the driver.
The present application is a continuation of U.S. application Ser. No. 16/673,120, filed on Nov. 4, 2019, which is a continuation of U.S. application Ser. No. 13/828,913, filed on Mar. 14, 2013, now U.S. Pat. No. 10,467,554, issued on Oct. 16, 2019. The aforementioned applications are hereby incorporated by reference in their entirety.
BACKGROUND OF THE INVENTIONMobile device technology enables people to communicate from any location. However, people still need to move between locations. Even though there are many people driving and there are many people who wish to go to a different location from where they are, the people who wish to go are not typically driven by the many people driving.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
A system for connecting a driver and a rider comprises an interface for providing a display information with potential drivers to the rider; and, in the event that a selected driver accepts the rider, providing a connect notification to the rider; wherein the connect notification comprises: an image associated with the driver, an image associated with the driver's car, and an anonymized interface for contacting the driver. The system for connecting a driver and a rider additionally comprises a processor configured to determine whether the selected driver accepts the rider. In some embodiments, the system for connecting a driver and a rider additionally comprises a memory coupled to the processor and configured to provide the processor with instructions.
A system for connecting a driver and a rider is disclosed. A system for connecting a driver and a rider comprises an app running on a mobile device used by a prospective driver and a prospective rider. In some embodiments, the app comprises a driver mode and a rider mode and can be toggled between the two modes. When a rider starts the app he receives a display of drivers that may be able to give him a ride. The rider can issue a ride request if desired. When the rider issues a ride request, the system provides a notification to a selected driver. In some embodiments, the selected driver has a time limit to respond to the notification. If the driver elects to deny the notification, the notification is provided to a next selected driver. If the driver elects to accept the notification, the driver and the rider are connected. A connection notification is provided to the driver. In some embodiments, the driver receives information regarding the rider (e.g., an image, a specific location for pickup, an anonymized contact number, etc.). A connect notification is provided to the rider. The connect notification comprises images associated with the driver and the driver's car, and an anonymized interface for contacting the driver. In some embodiments, the anonymized interface comprises a button the rider can use to contact the driver via the system for connecting a driver and a rider without revealing any of the driver's personal information to the rider. The driver drives to the location of the rider, picks him/her up, and drives him/her to his/her destination. When the ride is complete, the rider is presented with an interface including a suggested donation for the driver and a driver rating screen. At the end of each day, the driver is presented with a donation summary indicating the total donations received over the course of the day's driving.
In some embodiments, a request for a ride is made without indicating a dropoff address to the rider system, and the dropoff address is indicated by the rider directly to the driver after pickup. In various embodiments, the rider sets a user setting (e.g., on a user settings display) indicating that he does not want to indicate a dropoff addresses, the rider is queried after indicating a pickup address whether he wants to indicate a dropoff address, the rider enters no dropoff address into dropoff address entry field 506, it is determined whether or not a dropoff address is indicated (e.g., entered, not entered, not preferred, preferred, selected, not selected, etc.), or the rider indicates whether or not to indicate a dropoff address in any other appropriate way.
After the driver accepts the ride request, the driver drives to the pickup location and meets the rider. Upon arrival at the pickup location, a notification is sent to the rider that the driver has arrived. The rider then boards the driver's car. When the ride starts, the rider receives a ride start notification. In some embodiments, the ride start notification comprises an audio notification. The rider is then taken to the desired destination. In some embodiments, while the ride is underway, the rider is provided with a music playlist for the ride. In some embodiments, while the ride is underway, the driver is provided with a music playlist for the ride enabling the playlist to be played over the vehicle sound system. In some embodiments, while the ride is underway, the driver and/or the rider are provided with a music playlist for the ride. When the destination is reached, the driver indicates that the ride is complete. In various embodiments, the rider and/or the driver are provided with mutually compatible interest information—for example, similar likes, similar work experience, similar other material for interesting conversation topics during the ride, or any other appropriate information. In some embodiments, the interest information is determined by comparing social media web page information (e.g., facebook pages).
In some embodiments, in the event that the driver does not accept the ride request, the ride request is sent to the next selected driver—for example, the lift management system determines a next driver and provides a driver request to the driver. In some embodiments, the next selected driver comprises one of a set of potential drivers. In some embodiments, the driver is informed of a destination (e.g., by displaying the destination on the map or in text).
In some embodiments, after the driver activates start ride button 1310 to start the ride duration meter, the driver then drives to the rider destination. When the driver has reached the rider destination, the driver indicates to an end ride button that the ride is complete. In various embodiments, the end ride button comprises a button, a slider, a switch, or any other appropriate user interface device.
In some embodiments, the addresses are normalized so that a location that a location that has been used multiple times appears only once in the list of addresses for a cluster. Each time someone selects their pick-up or drop-off locations, the method with which they selected that location is stored. We sum up these location selectors per address per cluster. So a cluster would look like the following:
a. cluster 1
-
- i. Location A
- 1. selector: defaultList
- 2. selector: defaultList
- 3. selector: typedInput
- ii. Location B
- 1. selector: unknown
- i. Location A
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Claims
1. A computer-implemented method comprising:
- generating, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts;
- generating, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights;
- receiving, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location;
- determining that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters;
- based on determining that the requested pickup location corresponds to the pickup location cluster, selecting, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; and
- providing, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
2. The computer-implemented method of claim 1, wherein generating the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
3. The computer-implemented method of claim 1, wherein receiving the ride request indicating the requested pickup location comprises one or more of:
- receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;
- receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;
- receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; or
- determining a global positioning location of the requestor computing device for the ride request.
4. The computer-implemented method of claim 1, wherein generating the plurality of lead locations comprises:
- determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; and
- selecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
5. The computer-implemented method of claim 4, further comprising determining the first location weight and the second location weight by combining individual weights associated with historical events that occurred at the first historical pickup location and the second historical pickup location, respectively.
6. The computer-implemented method of claim 1, further comprising:
- storing, within a computer database, an account location for a user account associated with the requestor computing device;
- generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; and
- selecting the account location as a lead location for the additional pickup location cluster.
7. The computer-implemented method of claim 1, wherein determining that the requested pickup location corresponds to the pickup location cluster comprises determining that the requested pickup location is within a distance of the lead location of the pickup location cluster.
8. A system comprising:
- at least one processor; and
- at least one non-transitory computer readable storage medium storing instructions that, when executed by the at least one processor, cause the system to: generate, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts; generate, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights; receive, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location; determine that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters; based on determining that the requested pickup location corresponds to the pickup location cluster, select, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; and provide, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
9. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to generate the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
10. The system of claim 8: further comprising instructions that, when executed by the at least one processor, cause the system to receive the ride request indicating the requested pickup location by one or more of:
- receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;
- receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;
- receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; or
- determining a global positioning location of the requestor computing device for the ride request.
11. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to generate the plurality of lead locations comprises:
- determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; and
- selecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
12. The system of claim 11, further comprising instructions that, when executed by the at least one processor, cause the system to determine the first location weight and the second location weight by combining individual weights associated with historical events that occurred at the first historical pickup location and the second historical pickup location, respectively.
13. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to:
- storing, within a computer database, an account location for a user account associated with the requestor computing device;
- generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; and
- selecting the account location as a lead location for the additional pickup location cluster.
14. The system of claim 8, further comprising instructions that, when executed by the at least one processor, cause the system to determine that the requested pickup location corresponds to the pickup location cluster by determining that the requested pickup location is within a distance of the lead location of the pickup location cluster.
15. A non-transitory computer readable medium storing instructions thereon that, when executed by at least one processor, cause a computer system to:
- generate, via one or more servers, a plurality of pickup location clusters from historical events comprising historical pickup locations corresponding to requestor computing devices by utilizing a clustering algorithm to cluster the historical events according to relationships between the historical pickup locations and stored locations associated with user accounts;
- generate, via the one or more servers, a plurality of lead locations for the plurality of pickup location clusters by determining event weights for the historical events and combining the historical events corresponding to the plurality of pickup location clusters according to the event weights;
- receive, via the one or more servers from a requestor computing device, a ride request indicating a requested pickup location;
- determine that the requested pickup location corresponds to a pickup location cluster from the plurality of pickup location clusters;
- based on determining that the requested pickup location corresponds to the pickup location cluster, select, via the one or more servers, a lead location for the pickup location cluster from the plurality of lead locations as a pickup location for the ride request; and
- provide, for display on the requestor computing device, a pickup location pin indicating the pickup location for the ride request.
16. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of pickup location clusters comprises clustering the historical pickup locations based on distances between the historical pickup locations.
17. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to receive the ride request indicating the requested pickup location by one or more of:
- receiving an indication of user input placing a pin on a digital map displayed on the requestor computing device;
- receiving an indication of user input entering a typed address in an address entry field displayed on the requestor computing device;
- receiving in indication of user input selecting an address from a list of commonly used pickup addresses presented via the requestor computing device; or
- determining a global positioning location of the requestor computing device for the ride request.
18. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of lead locations comprises:
- determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; and
- selecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
19. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to generate the plurality of lead locations comprises:
- determining, for a certain pickup location cluster from among the plurality of pickup location clusters, a first location weight for a first historical pickup location and a second location weight for a second historical pickup location within the certain pickup location cluster; and
- selecting the second historical pickup location as a lead location for the certain pickup location cluster based on determining that the second location weight is greater than the first location weight.
20. The non-transitory computer readable medium of claim 15, further comprising instructions that, when executed by the at least one processor, cause the computer system to:
- storing, within a computer database, an account location for a user account associated with the requestor computing device;
- generating an additional pickup location cluster from a plurality of historical pickup locations of previous ride requests received from the requestor computing device of the user account, wherein the plurality of historical pickup locations occur within a distance of the account location; and
- selecting the account location as a lead location for the additional pickup location cluster.
Type: Application
Filed: Mar 7, 2023
Publication Date: Jun 29, 2023
Inventors: Frank Taehyun Yoo (Cupertino, CA), Evan Goldin (San Francisco, CA), Sebastian Rolf Johan Brannstrom (San Francisco, CA), Eduardo Alfio Perez Rico (Redwood City, CA)
Application Number: 18/179,592