Method and system for route calcuation in a navigation application
First Claim
1. A route calculation program for use in a navigation system used with a map database stored on a computer readable storage medium, the route calculation program adapted to find a solution route between a first location on a road network in a geographic region and a second location on the road network in the geographic region, said route calculation program comprising:
- at least one search tree adapted to hold a plurality of gate data structures, each of said gate data structures representing a physical position on the road network in the geographic region represented by said map database and a direction from said position to another location on said road network in said geographic region, said at least one search tree associated with said first location; and
a priority queue referencing said gate data structures in said at least one search tree and assigning a priority to one of said gate data structures;
wherein said route calculation is adapted to expand said one of said gate data structures to determine successor gate data structures thereof and to compare each of said successor gate data structures to gate data structures associated with said second location.
4 Assignments
0 Petitions
Accused Products
Abstract
A program and method for route calculation for use with a navigation system and used with a map database that represents a road network in a geographic region. A route calculation program is adapted to find at least one solution route between a first location on a road network and a second location on the road network. The route calculation program includes a first search tree associated with the first location and a second search tree associated with the second location. Each search tree is adapted to hold gates. Each of the gates represents a physical position on the road network and a direction from the position to another location along a path on the road network. The route calculation program also includes at least one priority queue associated with one of the search trees. The priority queue assigns a priority to one of the gates in the associated search tree based upon an evaluation using a search algorithm. The gate identified as having a higher priority than any other gate in its respective search tree is expanded to determine one or more successor gates thereof Each of these successor gates so formed is compared to the gates in the other search tree. The process of growing at least one of the search trees by expanding the gate in the search tree that has a higher priority than any other gate in the search tree is continued until a gate in one search tree corresponds to at least one gate in the other search tree.
-
Citations
30 Claims
-
1. A route calculation program for use in a navigation system used with a map database stored on a computer readable storage medium, the route calculation program adapted to find a solution route between a first location on a road network in a geographic region and a second location on the road network in the geographic region, said route calculation program comprising:
-
at least one search tree adapted to hold a plurality of gate data structures, each of said gate data structures representing a physical position on the road network in the geographic region represented by said map database and a direction from said position to another location on said road network in said geographic region, said at least one search tree associated with said first location; and
a priority queue referencing said gate data structures in said at least one search tree and assigning a priority to one of said gate data structures;
wherein said route calculation is adapted to expand said one of said gate data structures to determine successor gate data structures thereof and to compare each of said successor gate data structures to gate data structures associated with said second location. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A route calculation tool program for use in a navigation system used with a map database that represents a road network in a geographic region, said route calculation tool program comprising:
-
a first search tree associated with one of an origin and a destination and a second search tree associated with the other of the origin and the destination, wherein each of said search trees includes gate data structures each of which represents a position on a road network represented by said map database and a direction by which said position is accessible in a desired direction of travel;
wherein the route calculation program includes at least one priority queue that references one of said gate data structures in one of said search trees; and
wherein said route calculation tool program expands said one gate data structure referenced by said priority queue to form successor gate data structures thereof whereby a solution route is obtained by at least one gate data structure in said first search tree corresponding to at least one gate data structure in said second search tree. - View Dependent Claims (9, 10, 11)
-
-
12. In a route calculation program, a computer readable locus data structure means for use with a map database, wherein the map database includes a plurality of data records representing segments of roads in a geographic region, said computer readable locus data structure means adapted to identify a location along one of said segments of roads, said computer readable locus data structure means comprising:
-
a first locus data structure portion adapted to identify one of said plurality of data records, wherein said one of said plurality of data records represents a road segment along which the location can be accessed;
a second data structure portion adapted to identify a subsegment of the road segment represented by the one of said data records identified in said first data structure, wherein said subsegment represents a position between endpoints of the road segment via which the location can be accessed in a desired direction; and
a third data structure portion adapted to identify a side of the road segment represented by the one of said data records identified in said first data structure, wherein said side represents a side of the road segment via which the location can be accessed at the subsegment represented by the second data structure portion. - View Dependent Claims (13)
-
-
14. A method of operating a navigation system to identify a location in a geographic region, wherein said navigation system uses a map database that includes a plurality of data records each of which represents a road segment in the geographic region, wherein each of said data records is associated with two nodes each of which represents a location of an endpoint of the road segment represented by the data record, the method comprising the steps of:
-
identifying one data record of said plurality of data records, said one data record representing a road segment along which said location is accessible in a desired direction of travel;
identifying a subsegment of the one data record, said subsegment representing a position along said road segment at which said location is accessible in said desired direction of travel;
identifying a side of said subsegment of the one data record, said side representing a side of said road segment at which said location is accessible in said desired direction of travel; and
identifying one of said nodes of said one data record, said one node representing the endpoint of the road segment by which the location is accessible in said desired direction of travel.
-
-
15. A method of performing a route calculation function using a navigation system that uses a map database that includes road segment records that represent portions of roads in a road network in a geographic region, comprising the steps of:
-
identifying at least one seed gate associated with a first location in said geographic region through which a solution route is constrained to pass, wherein said seed gate comprises an associated locus representing a position along a portion of a road represented by a road segment record and a seed gate target node corresponding to a node of the road segment record, said seed gate target node representing all endpoint of the portion of a road represented by said road segment record by which said location is accessible in a desired direction of travel;
expanding said at least one seed gate to form at least one successor gate, wherein each successor gate so formed comprises an associated node corresponding to the target node of the seed gate which was expanded to form said successor gate and a successor gate target node, said successor gate target node corresponding to a node of a road segment record that represents a portion of a road which is accessible in the desired direction of travel between the positions represented by the associated node and the target node of the successor gate;
comparing each successor gate formed by said expanding step to corresponding gates associated with a second location in said geographic region through which said solution route is constrained to pass and outputting a solution route if a match is found;
if a match is not found in said comparing step, evaluating each successor gate to determine one successor gate having a higher priority than any other successor gate;
expanding said one successor gate having the higher priority than any other successor gate to form at least one additional successor gate, wherein each additional successor gate comprises an associated node corresponding to the target node of the successor gate which was expanded to form said additional successor gate and a target node of the successor gate, said target node of said successor gate corresponding to a node of a road segment record that represents a portion of a road which is accessible in the desired direction of travel between the positions represented by the associated node and the target node of the additional successor gate;
comparing each successor gate formed by said expanding step to said second location in said geographic region through which said solution route is constrained to pass and outputting a solution route if a match is found; and
if a match is not found in said second comparing step, continuing to perform said evaluating, expanding, and comparing steps until a match is found. - View Dependent Claims (16, 17)
-
-
18. A method of performing a rerouting function using a navigation system having a route calculation program that uses a map database that includes road segment records that represent portions of roads in a road network in a geographic region, comprising the steps of:
-
after calculating a solution route from a first location in said geographic region to a second location in said geographic region, wherein said solution route is represented by a list of road segment records, storing an inbound search tree formed of a plurality of gates, wherein each gate represents a physical location on said road network and an accessible direction relative to said physical location, and wherein said plurality of gates in said inbound search tree represent segments of roads of said road network from which said second location is accessible, upon said navigation system having departed from the solution route, providing data representing a physical location of said navigation system; and
growing said inbound search tree until at least one successor gate of the plurality of gates in said inbound search tree corresponds to said data representing the physical location of said navigation system.
-
-
19. A method of providing alternative routes using a navigation system having a route calculation program that uses a map database that includes road segment records that represent portions of roads in a road network in a geographic region, comprising the steps of:
-
after calculating a solution route between a first location in said geographic region and a second location in said geographic region, wherein said solution route comprises a list of road segment records that was obtained by forming at least one search tree formed of a plurality of gates, wherein each gate represents a physical location on said road network and an accessible direction relative to said physical location, incrementing a weighting associated with each of said gates in said at least one search tree that corresponds to said list of road segment records that comprise said solution route;
growing a search tree by expanding gates to form successor gates; and
evaluating which of said successor gates to select for further expansion using said incremented weighting.
-
-
20. A method of providing partial solution routes using a navigation system that uses a map database that includes road segment records that represent portions of roads in a road network in a geographic region, comprising the steps of:
-
identifying at least one seed gate associated with a first location in said geographic region through which a solution route is constrained to pass, wherein said seed gate comprises an associated locus representing a position along a portion of a road represented by a road segment record and a seed gate target node corresponding to a node of the road segment record, said seed gate target node representing an endpoint of the portion of a road represented by said road segment record by which said location is accessible in a desired direction of travel;
expanding said at least one seed gate to form at least one successor gate, wherein each successor gate so formed comprises an associated node corresponding to the target node of the seed gate which was expanded to form said successor gate and a successor gate target node, said successor gate target node corresponding to a node of a road segment record that represents a portion of a road which is accessible in the desired direction of travel between the positions represented by the associated node and the target node of the successor gate, comparing each successor gate formed by said expanding step to a second location in said geographic region through which said solution route is constrained to pass;
evaluating each successor gate to determine one successor gate having a higher priority than any other successor gate;
expanding said one successor gate having the higher priority than any other successor gate to form at least one additional successor gate, wherein each additional successor gate comprises an associated node corresponding to the target node of the successor gate which was expanded to form said additional successor gate and a target node of the successor gate, said target node of said successor gate corresponding to a node of a road segment record that represents a portion of a road which is accessible in the desired direction of travel between the positions represented by the associated node and the target node of the additional successor gate; and
prior to finding a match when comparing each successor gate formed by said expanding step to said second location in said geographic region through which said solution route is constrained to pass, outputting a partial solution route comprised of a list of segments corresponding to at least some of the gates which had been expanded based upon having a higher priority than any other gate.
-
-
21. A route calculation tool program for use in a navigation system and adapted to calculate a route between a first location and a second location, said route calculation tool program comprising:
-
object logic operatively executed by a processor of said navigation system, the object logic comprising a plurality of independent program objects, wherein each program object receives input data and provides output data according to a property of the program object, wherein said route calculation program comprises;
at least one of the program objects comprising a route calculation program object operatively adapted to receive a first waypoint program object representing said first location and a second waypoint program object representing said second location;
wherein said route calculation program object further comprises;
an outbound search tree program object including at least one seed gate and successor gates thereof, wherein said at least one seed gate represents a position along a road segment from which the first location can be exited, said position derived from said first waypoint program object;
an inbound search tree program object including said at least one seed gate and successor gates thereof, wherein said at least one seed gate represents a position along a road segment into which the second location can be entered, said position derived from said second waypoint program object;
an outbound priority queue program object including prioritized references to unexpanded gates in said outbound search tree program object; and
an inbound priority queue object including prioritized references to unexpanded gates in said inbound search tree program object; and
wherein at least one of said search tree program object is adapted to grow by expanding the gates therein to find a solution route when said search tree program objects include at least one common gate. - View Dependent Claims (22, 23)
-
-
24. A method of providing real time traffic weighted routes using a navigation system having a route calculation program that uses a map database that includes road segment records that represent portions of roads in a road network in a geographic region, comprising the steps of:
-
receiving a wireless transmission indicating weightings applicable to roads in said road network;
calculating a solution route between a first location in said geographic region and a second location in said geographic region, wherein said solution route comprises a list of road segment records that was obtained by forming at least one search tree formed of a plurality of gates, wherein each gate represents a physical location on said road network and an accessible direction relative to said physical location;
identifying to which of said road segments said weightings apply;
incrementing each of said gates in said at least one search tree that corresponds to a road segment to which one of said weightings applies;
growing a search tree by expanding gates to form successor gates; and
evaluating which of said successor gates to select for further expansion using said weighted gates.
-
-
25. A method for using geographic data that represents road segments in a geographic region to calculate a route between waypoints, wherein a waypoint represents one of an origin of the route, a destination of the route, and an intermediate stop between the origin and the destination of the route, and wherein each road segment is designated as having a rank selected from a plurality of ranks, and wherein said rank of a road segment is indicative of a functional classification thereof, the method comprising the steps of:
-
starting from one of the waypoints, identifying portions of potential solution routes that connect to said waypoint by identifying road segments that connect to said waypoint directly and by way of other road segments;
determining a first radius from said waypoint, suppressing consideration of road segments that have a first specified rank and that are located outside of said radius from being included as parts of said portions of potential solution routes;
wherein said first radius is determined based upon the density of road segments around said waypoint. - View Dependent Claims (26, 27)
-
-
28. A method for using geographic data that represents road segments in a geographic region to calculate a route between waypoints, wherein a waypoint represents one of an origin of the route, a destination of the route, and an intermediate stop between the origin and the destination of the route, and wherein each road segment is designated as having a rank selected from a plurality of ranks, and wherein said rank of a road segment is indicative of a functional classification thereof, the method comprising the steps of:
-
starting from one of the waypoints, identifying portions of potential solution routes that connect to said waypoint by identifying road segments that connect to said waypoint directly and by way of other road segments;
as road segments are identified that connect to said waypoint by way of other segments, relating a number of road segments identified to a distance from a recently identified road to the waypoint to determining a density factor around said waypoint;
using said density factor to determine a first radius from said waypoint, suppressing consideration of road segments that have a first specified rank and that are located outside of said radius from being included as parts of said portions of potential solution routes.
-
-
29. An object-oriented route calculation program for finding a solution route between a first location on a road network in a geographic region and a second location on the road network in the geographic region, using a map database that includes road segment data records that represent segments of roads that form the road network, the route calculation program comprised of a plurality of program objects, wherein each program object receives input data and provides output data according to a property of the program object, wherein said route calculation program comprises:
-
a route calculation program object having the property that, upon receiving first input data that identifies a first position in the geographic region and second input data that identifies a second position in the geographic region, output data is provided comprising a list of road segment records that represent segments of roads that link to each other to form a continuous navigable route connecting the first location and the second location, wherein the route calculation program object comprises;
a first search tree program object having the property that, upon receiving said first input data, an output is provided identifying a plurality of segments of roads, each of which links in a first desired direction of travel to said first position along a continuous navigable route formed of segments of roads, a second search tree program object having the property that, upon receiving said second input data, an output is provided identifying a plurality of segments of roads, each of which links in a second desired direction of travel, opposite to said first desired direction of travel, to said second position along a continuous navigable route formed of segments of roads, a first priority queue program object having the property that, upon receiving said output data of said first search tree program object and any additions thereto, an output is provided that identifies which one of said plurality of segments of roads has a higher priority relative to any other of said plurality of segments of roads and said additions thereto, if any, based upon an evaluation of each of said plurality of segments of roads against a search criterion;
and wherein said first search tree program object has the further property that, upon receiving said data from said first priority queue program object that identifies which one of said plurality of segments of roads has said higher priority, said first search tree program object adds to its previous output at least one segment of a road that is a valid successor of said one of said plurality of segments of roads identified by said first priority queue object as having said higher priority, until one of said segments of roads in said first search tree program object corresponds to one of said segments of roads in said second search tree program object thereby providing said list of road segment records that represent segments of roads that link to each other to form a continuous navigable route connecting the first location and the second location.
-
-
30. In a route calculation program that determines a solution route between a first location in a geographic region and a second location in the geographic region, using a geographic database that includes data records that represent road segments that form a road network in the geographic region, wherein each road segment is designated as having a rank selected from a plurality of ranks, and wherein said rank of a road segment is indicative of a functional classification thereof, and wherein the solution route includes a list of road segments that connect via the road network between the first location and the second location,
wherein the route calculation program evaluates successor road segments of at least one road segment upon which one of said positions is located and successor road segments thereof to find a plurality of road segments that connect via the road network to the other of said positions, and wherein during the process of evaluating successor road segments, a plurality of partial solution routes are developed, wherein each of said partial solution routes comprises a plurality of road segments connecting the one of said positions to a road segment whose successor road segments have yet to be evaluated; -
wherein during the process of evaluating successor road segments, the route calculation program maintains a list of said road segments whose successor road segments are yet to be evaluated;
wherein an improvement comprises;
defining a focus ring area bounded between an inner radius corresponding to a distance of the road segment closest to a point of focus toward which said successor road segments are evaluated and an outer radius corresponding a focus ring width, and suppressing from evaluation any road segments whose successor road segments are yet to be evaluated that have a rank less than a highest rank.
-
Specification