create-paths
Create a graph like structure with nodes and edges and calculate the duration between positions along the graph.
Example
var createPaths = ; var traverse = ; // { duration: 0.75, path: [ 'a', 'c', 'b' ] }console; // { duration: 0.85, path: [ 'a', 'c', 'b' ] }console;
Usage
var traverse = require('create-paths')(map);
When this module is passed a map
it will return a function which can be used to traverse the network of underlying nodes to find the path from one location to another.
map
should be an a two dimensional array. Each element of that array should describe a segment of a path.
So in the example:
[
['a', 'b', 1],
['a', 'c', 0.5],
['c', 'b', 0.25]
]
['a', 'b', 1]
describes that you can go from 'a'
to 'b'
in 1
.
var info = traverse(from, to);
The returned traverse
function can be used to find the path and duration between two locations.
from
can be a simple string which correlates to the original map passed in. Or i can describe a location between two locations using the following notations:
{ from: 'a', to: b: 'b', location: 0.1 }
Which states we're between 'a'
and 'b'
at 0.1
.
to
must always be a string.
info
will be null
if a path cannot be found between two locations. If path can be found it will be in the form:
{
duration: 0.5,
path: [ 'a', 'b', 'c' ]
}
Where duration
is how the total distance/duration defined by the original map passed in. path
is the name of the nodes that will be visited.
License
MIT, see LICENSE.md for details.