Awesome
Leaflet Routing Machine / GraphHopper
Maintainers Wanted
I no longer use this module, and have not done so in a long while. If you use it, please consider taking over maintenance of this module (it's not a lot of work). Because of this situation, I have very limited time and expertise to answer any questions regarding this module
Extends Leaflet Routing Machine with support for GraphHopper.
Some brief instructions follow below, but the Leaflet Routing Machine tutorial on alternative routers is recommended.
Installing
Go to the releases page to get the script to include in your page. Put the script after Leaflet and Leaflet Routing Machine has been loaded.
To use with for example Browserify:
npm install --save lrm-graphhopper
Using
There's a single class exported by this module, L.Routing.GraphHopper
. It implements the IRouter
interface. Use it to replace Leaflet Routing Machine's default OSRM router implementation:
var L = require('leaflet');
require('leaflet-routing-machine');
require('lrm-graphhopper'); // This will tack on the class to the L.Routing namespace
L.Routing.control({
router: new L.Routing.GraphHopper('your GraphHopper API key'),
}).addTo(map);
Note that you will need to pass a valid GraphHopper API key to the constructor.
To keep track of the GraphHopper credits consumption, the application may listen to the response
event fired by the Router object. This event holds the values from GraphHopper's response HTTP headers:
status
: The HTTP status code (see GraphHopper error codes)limit
: TheX-RateLimit-Limit
headerremaining
: TheX-RateLimit-Remaining
headerreset
: TheX-RateLimit-Reset
headercredits
: TheX-RateLimit-Credits
header
var router = myRoutingControl.getRouter();
router.on('response',function(e){
console.log('This routing request consumed ' + e.credits + ' credit(s)');
console.log('You have ' + e.remaining + ' left');
});