System and method for real-time travel path prediction and automatic incident alerts
A path prediction method that uses a commuter's travel patterns to predict their route and destination, and transmit road advisories via a GPS-enabled device. Once the user's location data is transmitted via a GPS-enabled device it is then catalogued and stored in a GIS database. The user's current travel path is then compared to their path history and statistics and a destination is determined based on related spatial and time properties. A warning is then automatically delivered to the user if there is an accident along their predicted path, without requiring any request or input form the user.
1. A method of notifying a user of an obstacle in a predicted path of travel, the method comprising:
receiving real-time location data for a user from a user's mobile device, the real-time location data comprising a plurality of coordinates representative of a current path of travel by the user;
receiving a plurality of trip-polylines associated with the user, wherein each of the plurality of trip-polylines represents a previous path of travel by the user;
comparing the real-time location data to the plurality of trip-polylines to identify a trip-polyline that corresponds with the real-time location data of the user;
responsive to a trip-polyline being identified that corresponds with the real-time location data of the user, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user;
responsive to a trip-polyline not being identified that corresponds with the real-time location data of the user:
reducing the real-time location data by removing an oldest coordinate of the plurality of coordinates from the real-time location data of the user; and
if the reduced real-time location data comprises more than one coordinate;
comparing the reduced real-time location data to the plurality of trip-polylines to identify a trip-polyline that corresponds with the reduced real-time location data of the user
responsive to a trip-polyline being identified that corresponds with the reduced real-time location data of the user, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user;
responsive to a trip-polyline not being identified that corresponds with the reduced real-time location data of the user:
further reducing the real-time location data by removing a next oldest coordinate of the plurality of coordinates from the real-time location data of the user and if the further reduced real-time location data comprises more than one coordinate repeating the step of comparing the reduced real-time location data of the user to the plurality of trip-polylines;
or, if the reduced real-time location data comprises a single coordinate;
determining a direction of travel of the user;
identifying an offset coordinate at a predetermined distance from the single coordinate in the direction of travel of the user;
radially buffering the offset coordinate at a predetermined radius to create a radial beacon;
comparing the radial beacon to the plurality of trip-polylines to identify a trip-polyline that corresponds with the radial beacon;
responsive to a trip-polyline being identified that corresponds with the radial beacon, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user.
2. The method of claim 1 wherein the obstacle is selected from the group consisting of delay points, delay polylines and delay polygons.
3. The method of claim 1 , wherein the real-time location data is represented by a real-time polyline constructed using the plurality of coordinates in the real-time location data.
4. The method of claim 1 , further comprising:
responsive to identifying a plurality of trip-polylines that correspond with the real-time location data of user;
determining the predicted path of the user to be the best matching trip-polyline of the plurality of trip-polylines that correspond with the real-time location data of the user.
5. The method of claim 1 , further comprising:
responsive to identifying a plurality of trip-polylines that correspond with the reduced real-time location data of user;
determining the predicted path of the user to be the best matching trip-polyline of the plurality of trip-polylines that correspond with the reduced real-time location data of the user.
6. The method of claim 1 , further comprising:
transmitting an alternate route to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user.
7. The method of claim 1 , further comprising buffering each of the plurality of trip-polylines by a predetermined radius.
8. A method of notifying a user of an obstacle in a predicted path of travel, the method comprising:
receiving real-time location data for a user from a user's mobile device, the real-time location data comprising a plurality of coordinates representative of a current path of travel by the user;
receiving a plurality of trip-polylines associated with the user, wherein each of the plurality of trip-polylines represents a previous path of travel by the user;
comparing the real-time location data to the plurality of trip-polylines to identify a trip-polyline that corresponds with the real-time location data of the user;
responsive to a trip-polyline not being identified that corresponds with the real-time location data of the user:
reducing the real-time location data by removing an oldest coordinate of the plurality of coordinates from the real-time location data of the user; and
if the reduced real-time location data comprises more than one coordinate;
comparing the reduced real-time location data to the plurality of trip-polylines to identify a trip-polyline that corresponds with the reduced real-time location data of the user;
responsive to a trip-polyline being identified that corresponds with the reduced real-time location data of the user, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user;
responsive to a trip-polyline not being identified that corresponds with the reduced real-time location data of the user:
further reducing the real-time location data by removing a next oldest coordinate of the plurality of coordinates from the real-time location data of the user and if the further reduced real-time location data comprises more than one coordinate repeating the step of comparing the reduced real-time location data of the user to the plurality of trip-polylines;
or, if the reduced real-time location data comprises a single coordinate;
determining a direction of travel of the user;
identifying an offset coordinate at a predetermined distance from the single coordinate in the direction of travel of the user;
radially buffering the offset coordinate at a predetermined radius to create a radial beacon;
comparing the radial beacon to the plurality of trip-polylines to identify a trip-polyline that corresponds with the radial beacon;
responsive to a trip-polyline being identified that corresponds with the radial beacon, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user.
9. The method of claim 8 , further comprising:
responsive to a trip-polyline being identified that corresponds with the real-time location data of the user, determining the identified trip-polyline to be a predicted path of the user; and
receiving an obstacle profile comprising coordinates related to at least one real-time obstacle;
determining if the at least one real-time obstacle is within the predicted path of the user by comparing the predicted path of the user to the coordinates of the at least one real-time obstacle; and
transmitting a notification to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user.
10. The method of claim 8 , wherein the obstacle is selected from the group consisting of delay points, delay polylines and delay polygons.
11. The method of claim 8 , wherein the real-time location data is represented by a real-time polyline constructed using the plurality of coordinates in the real-time location data.
12. The method of claim 9 , further comprising:
responsive to identifying a plurality of trip-polylines that correspond with the real-time location data of user;
determining the predicted path of the user to be the best matching trip-polyline of the plurality of trip-polylines that correspond with the real-time location data of the user.
13. The method of claim 8 , further comprising:
responsive to identifying a plurality of trip-polylines that correspond with the reduced real-time location data of user;
determining the predicted path of the user to be the best matching trip-polyline of the plurality of trip-polylines that correspond with the reduced real-time location data of the user.
14. The method of claim 8 , further comprising:
transmitting an alternate route to the user's mobile device if the at least one real-time obstacle is within the predicted path of the user.
15. The method of claim 8 , further comprising:
buffering each of the plurality of trip-polylines by a predetermined radius.