simple-custom-routing-machine

0.1.1 • Public • Published

Build turn-by-turn directions on a network of custom paths with seamless handoffs to the global road network and the Mapbox Directions API

Installation

npm install simple-custom-routing-machine

Usage

First, build a routable network of roads/paths using geojson-network-parser.

const scrm = require('simple-custom-routing-machine');

// Initialize the routing machine, defining the location of entrances
const routingMachine = new scrm(network, {
  entrances: [ {
    coordinates: [-22.102600322893295, -32.07816895133297],
    enterManeuver: {type: "stop", instruction: "Check in at the security gate."},
    exitManeuver: {type: "stop", instruction: "Check out at the security gate."}
  }],
  mapboxAccessToken: 'your_mapbox_access_token' // Needed to use the Mapbox Directions API
});

// Pick two points you want to route between
const a = [-22.3213,-32.0784333];
const b = [-23.3213,-32.0784333];

routingMachine.getDirections(a, b, (err, directions) => {
    if(err) {
      return console.log(err);
    } 
    
    // Build HTML from the directions instructions
    var instructions = directions.maneuvers.map(m => m.instruction).join("\n");

    console.log(instructions);
    
    // Optionally, use the route as a data source on a Mapbox GL JS map
    map.getSource('route').setData({type: "Feature", geometry: directions.geometry });
  });

Building from source

Clone this repo then run:

npm install
npm run build

This will output a bundled js file to dist/scrm.js.

Readme

Keywords

none

Package Sidebar

Install

npm i simple-custom-routing-machine

Weekly Downloads

0

Version

0.1.1

License

ISC

Last publish

Collaborators

  • kronick