# Patent

## Title
System and method for presenting a computed route

## Abstract

A method for presenting a route includes receiving a starting point and a destination point and computing a route that includes a route segment between the two points. The method further includes determining, based on a user's travel history, whether the route segment is an unfamiliar segment, and identifying, based on the user's travel history, a road that is familiar to the user and that is within a scaled range of the unfamiliar segment. The computed route and the familiar road are then presented in a format that distinguishes the familiar road from the computed route, and the familiar road is represented relative to the unfamiliar segment.

## Background
BACKGROUND
Computer mapping applications allow a user to view maps of regions around the world. Mapping applications typically allow the user to zoom in and zoom out of a map so that the user can explore the region at various levels, e.g., street level, city level, state level. One common feature of the typical mapping application is the ability to compute a route between two locations in response to receiving a starting point and a destination point from the user. Typically, the computed route is highlighted on a map of the region containing the starting and destination points. The user can magnify sections of the map to see the route in greater detail. For example, the map can be magnified to display the streets on the route, as well as the streets surrounding the route. In some cases, the mapping application can also display landmarks and/or points of interest along the route.
The computed route is typically the shortest path between the starting point and destination point. Nevertheless, the mapping application can take into consideration various factors, such as the size of the streets, i.e., the number of lanes, and whether the streets are one way or bidirectional. This mapping data is typically stored in a storage mechanism, locally or remotely, and accessed by the mapping application in computing the route. Thus, the resulting route need not necessarily be the absolute shortest path, but the most practical path under the conditions considered.
Because the mapping data only provides information about the roads, the mapping application does not take into account factors specific to the user. In particular, the mapping application generally does not consider the user's familiarity with the roads on the route and therefore, the computed route can be disorienting for the user if it comprises several unfamiliar segments. To address this concern, some mapping applications track and store the user's preferences and travel history, e.g., the roads traveled by the user, and use the preferences and travel history to compute the route. This approach, however, can be problematic when the resulting computed route is significantly lengthened to accommodate the familiar roads.
SUMMARY
Accordingly, a method and a device for presenting a route are described. According to one exemplary embodiment, a method for presenting a route includes receiving a starting point and a destination point and computing a route that includes a route segment between the two points. The method further includes determining, based on a user's travel history, whether the route segment is an unfamiliar segment, and identifying, based on the user's travel history, a road that is familiar to the user and that is within a scaled range of the unfamiliar segment. The computed route and the familiar road are then presented in a format that distinguishes the familiar road from the computed route, and the familiar road is represented relative to the unfamiliar segment.
According to another exemplary embodiment, a device includes means for receiving a starting point and a destination point, means configured to compute a route that includes a route segment between the two points, means for determining, based on a user's travel history, whether the route segment is an unfamiliar segment, and means for identifying, based on the user's travel history, a road that is familiar to the user and that is within a scaled range of the unfamiliar segment. The device further includes means for presenting the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.
According to another exemplary embodiment, a device comprises a user interface for receiving a starting point and a destination point, and a routing module configured to compute a route that includes a route segment between the two points. The routing module is also configured to determine, based on a user's travel history, whether the route segment is an unfamiliar segment, and to identify, based on the user's travel history, a road that is familiar to the user and that is within a scaled range of the unfamiliar segment. The device also includes a display that presents the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings provide visual representations which will be used to more fully describe the representative embodiments disclosed here and can be used by those skilled in the art to better understand them and their inherent advantages. In these drawings, like reference numerals identify corresponding elements, and:
FIG. 1 is a block diagram illustrating an exemplary route device according to an exemplary embodiment;
FIG. 2 is a flow diagram illustrating an exemplary process for presenting a route according to an exemplary embodiment;
FIG. 3 is a flow diagram illustrating an exemplary process for determining whether a route segment is unfamiliar according to an exemplary embodiment;
FIG. 4 is a flow diagram illustrating an exemplary process for identifying a familiar road according to an exemplary embodiment; and
FIGS. 5A-5D are diagrams illustrating an exemplary computed route according to an exemplary embodiment.



DETAILED DESCRIPTION
Various aspects will now be described in connection with exemplary embodiments, including certain aspects described in terms of sequences of actions that can be performed by elements of a computing device or system. For example, it will be recognized that in each of the embodiments, at least some of the various actions can be performed by specialized circuits or circuitry (e.g., discrete and/or integrated logic gates interconnected to perform a specialized function), by program instructions being executed by one or more processors, or by a combination of both. Thus, the various aspects can be embodied in many different forms, and all such forms are contemplated to be within the scope of what is described.
According to one embodiment, a route device receives a starting point and a destination point and computes a route between the two points. The computed route can be divided into a plurality of route segments. Each route segment is analyzed to determine whether the segment is familiar or unfamiliar to the user based on the user's travel history. When a route segment is unfamiliar, a road that is familiar to the user and that is within a scaled range of the unfamiliar segment is identified. After each segment is analyzed, the computed route and the identified familiar road(s) are presented to the user in a format that distinguishes the familiar road(s) from the computed route.
In one embodiment, the computed route can be distinguished from the familiar road(s) in a variety of ways, including, but not limited to, using different colors, line thicknesses, highlighting, line styles, and line flashing to represent the route and the familiar road. In this manner, the computed route can be the most practical route from a starting point to a destination point, and because the user is provided with familiar reference points in otherwise unfamiliar segments of the computed route, the user can feel more comfortable and confident following the computed route.
FIG. 1 is block diagram illustrating an exemplary route device according to an exemplary embodiment. The device 100 includes a means for tracking a position of the device 100. For example, the device 100 can include a positioning system 102 that tracks the position of the device 100. The positioning system 102 can be a well known global positioning system (GPS) that utilizes satellites 104 to determine the device's longitudinal and latitudinal position. The device 100 can also include a map source 106 from which mapping data (not shown) can be retrieved that allows the positioning system 102 to correlate the device's position with a road.
In one embodiment, the device 100 is used in a vehicle that is operated by the user. Accordingly, when the user is traveling in the vehicle, the device 100 is effectively tracking the position of the user and the roads on which the user is traveling.
According to one embodiment, the device 100 includes a means for recording the user's travel history that stores and manages the roads on which the user has traveled. For example, the device 100 can include a travel history manager 130 that is configured to receive travel data 142, i.e., a road on which the user is presently traveling, from the positioning system 102 and to store the travel data 142 in a storage mechanism, such as a database 140. In one embodiment, the travel history manager 130 manages the travel data 142 and tracks how frequently the user has traveled on a road.
In an exemplary embodiment, the device 100 includes a means for computing a route between a starting point and a destination point. For example, the device 100 can include a routing module 120 that is configured to compute a route between the starting point and the destination point. The routing module 120 is coupled to a means for receiving the starting point and the destination point, such as a user interface 110. In one embodiment, the user interface 110 can prompt the user to enter the starting point and the destination point. In another embodiment, the user interface 110 can prompt the user to enter only the destination point, and the routing module 120 can use the present position of the user as the starting point. Given the starting point and the destination point, the routing module 120 can compute a route between the two points by using mapping data retrieved from the map source 106, as is well known in the art.
According to an exemplary embodiment, the routing module 120 is configured to divide the computed route into a plurality of route segments and to determine whether a route segment is unfamiliar to the user based on the travel history of the user. In one embodiment, the routing module 120 uses the travel history manager 130 to search the travel data 142 to determine whether any portion of a route segment matches a road that is familiar to the user. When no portion of the route segment matches a familiar road, the route segment is an unfamiliar segment, and the routing module 120 is configured to identify one or more roads that are familiar to the user and that are within a scaled range of the unfamiliar segment. The computed route and identified familiar road(s) are then presented on a display 110 in a format that distinguishes the familiar road(s) from the computed route such that the user can orient herself in the unfamiliar segment(s) of the computed route.
Although not shown in FIG. 1, the positioning system 102 and map source 106 can be external to the route device 100. In one embodiment, the map source 106 can reside on a server (not shown) communicatively coupled to the positioning system 102 and the route device 100 via a network, such as the Internet. In addition, the travel data 142 can be stored on an external storage mechanism, e.g., database 140, on the network, e.g., the Internet, so that the travel data 142 for a particular user can be retrieved using different route devices 100. Thus, for example, the user can operate a friend's vehicle that is also equipped with the route device 100, and the route device 100 can identify roads familiar to the user, regardless of whether the user is the vehicle's regular user.
FIG. 2 is a flow diagram illustrating an exemplary process for presenting a route using the route device 100 according to one embodiment. Referring to FIGS. 1 and 2, the exemplary process begins when the routing module 120 receives a starting point and a destination point (block 200). As stated above, the user interface 110 can prompt the user to enter the starting and destination points, i.e., addresses, intersections, cities, etc. In another embodiment, the user interface 110 can prompt the user to enter the destination point, and the routing module 120 can retrieve the present position of the user from the positioning system 102 and use the present position as the starting point. Once the starting and destination points have been received, the routing module 120 can compute one or more routes between the two points (block 202) using any well known route computing technique, e.g., shortest distance, shortest distance using wide streets, fastest route, etc. An exemplary route is illustrated in FIG. 5A, where point A represents the starting point 501 and point B represents the destination point 503. If more than one route 500 is computed, the user can be prompted to select a route 500 for presentation.
According to an exemplary embodiment, the routing module 120 may divide the (selected) computed route 500 into a plurality of route segments (block 204). For example, as shown in FIG. 5B, the computed route 500 is divided into three (3) route segments, x (502a), y (502b) and z (502c). In one embodiment, the route segments 502a-502c can be equal in length and based on the overall length of the computed route 500. For example, the length of each route segment 502a-502c can be the smaller of a pre-selected fraction of the computed route length, e.g., 1⁄8 of the total length, or a predetermined length, e.g., 10 miles. In another embodiment, the route segments 502a-502c need not be equal in length, but based on characteristics of the computed route 500 instead. For example, the route segments 502a-502c can be based on a change of direction, or on a change of the road being traversed, or on a change of terrain, e.g., from a valley to mountains, from a city to a suburb. In another embodiment, the route segments 502a-502c can be based on a combination of factors, including but not limited to those mentioned above.
Referring again to FIG. 2, after the computed route 500 has been divided into route segments 502a-502c, the routing module 120 analyzes a first route segment (e.g., 502a) (block 206) and determines whether the route segment 502a is unfamiliar to the user (block 207). FIG. 3 is a flow diagram illustrating a process for determining whether the route segment 502a is unfamiliar according to one embodiment.
Referring to FIG. 1 and FIG. 3, the exemplary process begins by tracking the user's position while the user is traveling and correlating the position with a road (block 300). As stated above, the positioning system 102 tracks the position of the user in the vehicle. For example, the positioning system 102 can be a global positioning system (GPS) that uses a receiver in the vehicle to receive broadcasts from GPS satellites 104. Based on signals received from at least three satellites, the positioning system 102 can accurately determine its position in longitudinal and latitudinal coordinates. When coupled with a map source 106, the positioning system 102 can correlate the position with a road. Such positioning systems 102 are well known and are quickly becoming standard components in vehicles.
According to an exemplary embodiment, the roads traveled by the user, i.e., the travel data 142, are collected by the travel history manager 130 and stored in a database 140 (block 302). When the routing module 120 analyzes a route segment 502a to determine whether it is unfamiliar, the routing module 120 parses the route segment into its component roads and uses the travel history manager 130 to compare each road of the route segment with the travel data 142 (block 304). If any road of the route segment matches a road traveled by the user (block 305), the route segment is determined to be familiar (block 306). In one embodiment, the user need not have actually traveled on that particular part of the route segment that matches the road traveled by the user. In other words, the road is familiar to the user so long as the user has traveled on some portion of the matching road. If none of the roads of the route segment match a road traveled by the user (block 305), the route segment is determined to be unfamiliar (block 308).
Referring again to FIG. 2, when the route segment 502a is determined to be an unfamiliar segment (block 207), the routing module 120 identifies, based on the user's travel history/data 142, one or more roads that are familiar to the user and that are within a scaled range of the unfamiliar segment (block 208). In one embodiment, the scaled range is based on the length of the unfamiliar segment. For example, the scaled range can be the smaller of a pre-selected fraction, e.g., 1⁄5, of the length of the unfamiliar segment and a predetermined distance, e.g., 1 mile. In another embodiment, the user can incrementally expand the scaled range in order to find the nearest familiar road when no familiar roads are identified within the initial scaled range.
FIG. 4 is a flow diagram illustrating a process for identifying a familiar road according to an exemplary embodiment. Referring to FIG. 1 and FIG. 4, the exemplary process begins by determining the scaled range based on the length of the unfamiliar segment (block 400). In one embodiment, shown in FIG. 5C, the scaled range, SR (504), is a circle with radius, r, around a point on the unfamiliar segment 502c. The radius, r, can be based on the length of the unfamiliar segment. The routing module 120 then identifies roads within the scaled range 504 on which the user has traveled (block 402). In one embodiment, the routing module 120 can use the travel history manager 130 to search the travel data 142 for traveled roads falling within the scaled range 504. As is shown in FIG. 5C, the routing module 120 has identified three (3) traveled roads, TR1 (510a), TR2 (510b), TR3 (510c). As noted above, the portions of the identified traveled roads that fall within the scaled range 504 can be portions on which the user has not actually traveled. Thus, the user need only be familiar with the road name and not necessarily with the portion of the road near the unfamiliar segment.
According to one exemplary embodiment, once the traveled roads 510a-510c have been identified (block 402), the routing module 120 considers a first traveled road, e.g., 510a, (block 404), and determines the distance, d, between the road 510a and the unfamiliar segment 502c (block 406). Then, the routing module 120 determines the number of times, n, the user has traveled on the road 510a (block 408). Based on the distance, d, and the frequency with which the user has traveled on the road 510a, the routing module 120 calculates a weight for the road 510a (block 410). For example, in one embodiment, the weight, W, can be calculated in the following manner:

W=n×1/(1+d)

If more traveled roads exist (block 411), the next traveled road, e.g., 510b, is considered (block 412) and process blocks 406 through 410 are repeated. Once all of the identified traveled roads 510a-510c have been weighted, the routing module 120 can select the familiar road based on its weight (block 414). In addition, the routing module 120 can select the familiar road based only on its distance from the unfamiliar segment, or only on the number of times the user has traveled on that road, or any weighted combination of the two. Alternatively, the routing module 120 can merely select all of the familiar roads that are within the scaled range without regard to ranking them by familiarity or proximity.
Referring again to FIG. 2, once the one or more familiar roads are identified (block 208), the routing module 120 determines whether more route segments 502a-502c need to be processed (block 209). If such is the case, the routing module 120 proceeds to the next route segment, e.g., 502b, (block 210) and processing blocks 207 and 208 are repeated for each remaining route segment. After all of the route segments 502a-502c have been analyzed, the computed route 500 and the familiar road(s) are displayed to the user (block 212) in a format that distinguishes the familiar roads from the computed route. As stated above, the computed route 500 can be distinguished from the familiar roads in a number of ways, including, but not limited to, using different colors, line thicknesses, highlighting, line flashing and line styles, as is shown in FIG. 5D. In one embodiment, familiar roads are presented using a presentation scheme different from the presentation scheme of the computed route and/or of the surrounding map information. That is, the familiar road or roads can be presented according to a common scheme that differs from the scheme of other elements of the map.
Although FIG. 2 illustrates an example in which the route is divided into multiple segments, it should be understood that dividing the route into segments is optional and the route can, in effect, be processed as a single segment. That is, blocks 204, 209, and 210 may be omitted from the figure and the route can be considered as a single segment without departing from the subject matter described herein.
In one exemplary embodiment, an alternative route can be computed in response to the user selecting one or more of the familiar roads 512. In this embodiment, the alternative route replaces an unfamiliar road in an unfamiliar route segment with the familiar road selected by the user. In this manner, the user can customize the computed route.
The executable instructions of a computer program as illustrated in FIG. 2, FIG. 3 and FIG. 4 can be embodied in any computer readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer based system, processor containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
As used here, a “computer readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium.
More specific examples (a non-exhaustive list) of the computer readable medium can include the following: a wired network connection and associated transmission medium, such as an ETHERNET transmission system, a wireless network connection and associated transmission medium, such as an IEEE 802.11(a), (b), or (g) or a BLUETOOTH transmission system, a wide-area network (WAN), a local-area network (LAN), the Internet, an intranet, a portable computer diskette, a random access memory (RAM), a read only memory (ROM), an erasable programmable read only memory (EPROM or Flash memory), an optical fiber, a portable compact disc (CD), a portable digital video disc (DVD), and the like.
According to the exemplary embodiments, a computed route from a starting point to a destination point is displayed along with one or more familiar roads near unfamiliar segments of the computed route. By displaying the familiar roads near unfamiliar segments of the route, the user can orient herself with reference to the familiar roads. Accordingly, the user can follow the computed route with more confidence and less anxiety.
It will be appreciated by those of ordinary skill in the art that the concepts and techniques described here can be embodied in various specific forms without departing from the essential characteristics thereof. The presently disclosed embodiments are considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims, rather than the foregoing description, and all changes that come within the meaning and range of equivalence thereof are intended to be embraced.

## Claims

1. A method for presenting a route, the method comprising:
receiving a starting point and a destination point;
computing a route from the starting point to the destination point, wherein the computed route comprises a route segment;
determining, based on a user's travel history, whether the route segment is an unfamiliar segment;
identifying a road that is familiar to the user, based on the user's travel history, and that is within a scaled range of the unfamiliar segment; and
presenting the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.

2. The method of claim 1 wherein receiving a starting point comprises determining a present position of the user.

3. The method of claim 1 wherein receiving a starting point and a destination point includes prompting a user to enter the starting point and the destination point.

4. The method of claim 1 wherein computing the route comprises:
retrieving mapping data from a map source; and
using the mapping data to create the computed route.

5. The method of claim 1 further comprising determining a plurality of roads on which the user has traveled and storing the plurality of traveled roads.

6. The method of claim 5 wherein determining the plurality of traveled roads includes using an electronic positioning system to track the user's position while the user is traveling and using a map source to correlate the user's position with a road.

7. The method of claim 5 wherein identifying the familiar road includes:
searching the plurality of traveled roads to identify a portion of a traveled road that falls within the scaled range of the unfamiliar segment, wherein the portion of the traveled road within the scaled range is a portion on which the user has not traveled.

8. The method of claim 5 wherein identifying the familiar road includes:
searching the plurality of traveled roads to identify a portion of a traveled road that falls within the scaled range of the unfamiliar segment, wherein the portion of the traveled road within the scaled range is a portion on which the user has traveled.

9. The method of claim 5 wherein identifying the familiar road includes:
searching the plurality of traveled roads to identify a plurality of traveled roads that fall within the scaled range of the unfamiliar segment; and
selecting the familiar road from the identified plurality of traveled roads based on a distance between each of the identified traveled roads and the unfamiliar segment and a frequency with which the user has traveled on each of the identified plurality of traveled roads.

10. The method of claim 1 wherein determining whether the route segment is an unfamiliar segment includes:
determining whether any portion of the route segment matches a road that is familiar to the user; and
identifying the route segment as an unfamiliar segment when no portion of the route segment matches a road that is familiar to the user.

11. The method of claim 1 wherein presenting the computed route includes distinguishing the familiar road from the unfamiliar segment using at least one of different colors, highlighting, line thickness, labels, line styles, and line flashing.

12. The method of claim 1 further comprising:
determining an alternative route from the starting point to the destination point that includes the familiar road instead of the unfamiliar segment in response to the user selecting the familiar road; and
presenting the alternative route to the user.

13. A device for presenting a route, the device comprising:
means for receiving a starting point and a destination point;
means configured to compute a route from the starting point to the destination point, the route comprising a route segment;
means for determining whether the route segment is an unfamiliar segment based on a user's travel history;
means for identifying a road that is familiar to the user and that is within a scaled range of the unfamiliar segment; and
means for presenting the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.

14. The device of claim 13 further comprising:
means for tracking the user's position while the user is traveling;
means for correlating the position of the user with a road on a map; and
storage means for storing a plurality of roads on which the user has traveled.

15. A device for presenting a route, the device comprising:
a user interface for receiving a starting point and a destination point;
a routing module configured to compute a route from the starting point to the destination point, the route comprising a route segment, to determine whether the route segment is an unfamiliar segment based on the user's travel history, and to identify a road that is familiar to the user and that is within a scaled range of the unfamiliar segment; and
a display that presents the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.

16. The device of claim 15 further comprising a positioning system configured to determine the starting point based on a current position of the device.

17. The device of claim 15 further comprising:
a positioning system configured to track the user's position while the user is traveling;
a map source configured to correlate the position of the user with a road on a map; and
a storage mechanism that stores a plurality of roads on which the user has traveled.

18. The device of claim 17 wherein the routing module is further configured to search the plurality of traveled roads, to identify a plurality of traveled roads that fall within the scaled range of the unfamiliar segment, and to select the familiar road from the identified plurality of traveled roads based on a distance between each of the identified traveled roads and the unfamiliar segment and a frequency with which the user has traveled on each of the identified plurality of traveled roads.

19. The device of claim 15 wherein the display is configured to distinguish the familiar road from the unfamiliar segment using at least one of different colors, highlighting, line thickness, labels, line styles, and line flashing.

20. The device of claim 15 wherein the device is a handheld navigation system used in a vehicle operated by the user.

21. A computer readable medium containing programming instructions for presenting a route, the programming instructions for:
receiving a starting point and a destination point;
computing a route from the starting point to the destination point, wherein the computed route comprises a route segment;
determining, based on the user's travel history, whether the route segment is an unfamiliar segment;
identifying a road that is familiar to the user, based on the user's travel history, and that is within a scaled range of the unfamiliar segment; and
presenting the computed route and the familiar road relative to the unfamiliar segment in a format that distinguishes the familiar road from the computed route.

22. The computer readable medium of claim 21 further comprising instructions for determining a plurality of roads on which the user has traveled and storing the plurality of traveled roads.

23. The computer readable medium of claim 22 wherein the instructions for identifying the familiar road include:
searching the plurality of traveled roads to identify a plurality of traveled roads that fall within the scaled range of the unfamiliar segment; and
selecting the familiar road from the identified plurality of traveled roads based on a distance between each of the identified traveled roads and the unfamiliar segment and a frequency with which the user has traveled on each of the identified plurality of traveled roads.

24. The computer readable medium of claim 21 wherein determining whether the route segment is an unfamiliar includes instructions for:
determining whether any portion of the route segment matches a road that is familiar to the user; and
identifying the route segment as an unfamiliar segment when no portion of the route segment matches a road that is familiar to the user.

25. The computer readable medium of claim 21 further comprising instructions for:
determining an alternative route from the starting point to the destination point that includes the familiar road instead of the unfamiliar segment in response to the user selecting the familiar road; and
presenting the alternative route to the user.