terra-route
    Preparing search index...

    terra-route

    Terra Route

    Terra Route aims to be a fast library for routing on GeoJSON LineStrings networks, where LineStrings share identical coordinates. Terra Routes main aim is currently performance.

    npm install terra-route
    

    Here is a short example of how to use the TerraRoute class:

    import { FeatureCollection, LineString, Point, Feature } from "geojson";
    import { TerraRoute } from "terra-route";

    // Sample GeoJSON network (a simple "L" shape)
    const network: FeatureCollection<LineString> = {
    type: "FeatureCollection",
    features: [
    {
    type: "Feature",
    geometry: {
    type: "LineString",
    coordinates: [
    [0, 0], // A
    [0, 1], // B
    [0, 2], // C
    ],
    },
    properties: {},
    },
    {
    type: "Feature",
    geometry: {
    type: "LineString",
    coordinates: [
    [0, 1], // B
    [1, 1], // D
    ],
    },
    properties: {},
    },
    ],
    };

    // Define start and end points (A and D)
    const startPoint: Feature<Point> = {
    type: "Feature",
    geometry: {
    type: "Point",
    coordinates: [0, 0], // Point A
    },
    properties: {},
    };

    const endPoint: Feature<Point> = {
    type: "Feature",
    geometry: {
    type: "Point",
    coordinates: [1, 1], // Point D
    },
    properties: {},
    };

    // Initialize TerraRoute instance
    const router = new TerraRoute();

    // We must build the route graph first before calling getRoute
    router.buildRouteGraph(network);

    // Get shortest route
    const route = router.getRoute(startPoint, endPoint);

    console.log("Shortest route:", JSON.stringify(route, null, 2));

    You can run the benchmarks yourself using:

    npm run benchmark
    

    Using default Haversine distance, Terra Route is approximately 1.6x faster than GeoJSON Path Finder with Haversine distance. If you pass in the CheapRuler distance metric (you can use the exposed createCheapRuler function), it is about 3x faster.

    TerraRoute does not current support

    Terra Route is inspired by the the prior art of geojson-path-finder and we use this library to help benchmark Terra Routes performance.

    MIT