| CPC G01C 21/3446 (2013.01) [G01C 21/3453 (2013.01)] | 20 Claims |

|
1. A device, comprising:
one or more processors configured to:
receive information specifying a set of nodes and respective links between respective pairs of nodes of the set of nodes;
generate a node map based on the set of nodes and the links between the respective pairs of nodes, wherein generating the node map includes generating a set of shortcut links that each represent two or more links between at least three nodes of the set of nodes, wherein generating the node map further includes:
identifying a particular candidate shortcut link that represents a first link from a first node to a second node and a second link from the second node to a third node,
identifying a plurality of turn pairs associated with the particular candidate shortcut link, wherein the plurality of turn pairs include at least:
a first turn pair that includes a first turn into the particular candidate shortcut link and a first turn out of the particular candidate shortcut link, and
a second turn pair that includes a second turn into the particular candidate shortcut link and a second turn out of the particular candidate shortcut link,
wherein the second turn in to the particular candidate link is a different turn than the first turn into the particular candidate link, or the first turn out of the particular candidate link is a different turn than the second turn out of the particular candidate link,
identifying a first cost of the first turn into the particular candidate shortcut link,
identifying a second cost of the first turn out of the particular candidate shortcut link,
searching for alternative paths between the first node and the third node, the search including searching based on the first turn pair without searching based on the second turn pair associated with the particular candidate shortcut link,
determining, based on the identified first and second costs and further based on the searching for alternative paths between the first node and the third node, that the particular candidate shortcut link should replace the first and second links, and
replacing the first and second links with the particular candidate shortcut link;
receive a request for a path from a first location to a second location;
determine the requested path using the generated node map; and
respond to the request by providing the determined path.
|