@gegeweb/leaflet-routing-machine-openroute
v0.1.10
Published
A Leaflet plugin that extend Leaflet Routing Machine with support for OpenRoute Service.
Downloads
217
Maintainers
Readme
Leaflet Routing Machine - OpenRoute Service
Extends Leaflet Routing Machine with support for OpenRoute Service.
This plugin is used (it was developed for this) in the SCASB - Calcul itinéraires vélo map (works stil in progress…).
How to use / Install
Required prerequisites
- Get an OpenRoute Service api key
- Install Leaflet Routing Machine in your project
- Download or clone this repository and copy the files
leaflet-routing-machine-openroute/dist/*
in your project.
Node.js
Install
npm install @gegeweb/leaflet-routing-machine-openroute
Build
npm run-script build
Browser
1. include javascript
<head>
…
<!-- Leaflet -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@latest/dist/leaflet.css" />
<link rel="stylesheet" href="https://unpkg.com/leaflet-routing-machine@latest/dist/leaflet-routing-machine.css" />
<script src="https://unpkg.com/leaflet@latest/dist/leaflet.js"></script>
<!-- Leaflet Routing Machine -->
<script src="https://unpkg.com/leaflet-routing-machine@latest/dist/leaflet-routing-machine.min.js"></script>
<!-- Leaflet Routing Machine - OpenRoute Service -->
<script src="https://unpkg.com/@gegeweb/leaflet-routing-machine-openroute@latest/dist/leaflet-routing-openroute.min.js"></script>
…
</head>
2. initialise the router
// ROUTING
// the plugin allow to setting the requesting format
// but at this time, gpx doesn't works.
const osrRouter = L.Routing.openrouteservice(apikey, {
"timeout": 30 * 1000, // 30",
"format": "json", // default, gpx not yet supported
"host": "https://api.openrouteservice.org", // default if not setting
"service": "directions", // default (for routing)
"api_version": "v2", // default
"profile": "cycling-road", // default
"routingQueryParams": {
"attributes": [
"avgspeed",
"percentage"
],
"language": "fr-fr",
"maneuvers": "true",
"preference": "recommended",
}
});
For the routingQueryParams
options please refer to the API Playground or documentation.
Be careful! The example refer to the v1 API, for the v2 API you must use array instead of strings of arguments separed by '|'.
for profil: cycling-*
:
"routingQueryParams": {
"avoid_features": [
"hills",
"unpavedroads",
],
"profile_params": {
"weightings": {
"steepness_difficulty": {
"level": 3
},
"restrictions": {
"gradient": 15
}
}
},
3. declare the router in the L.Routing.Control
See the official API documentation for further details.
L.Routing.control({
…
router: osrRouter,
formatter: L.routing.formatterORS({
…
language: 'fr', // language of instructions & control ui
steptotext: true, // force using internal formatter instead of ORS instructions
}),
…
}).addTo(map);
Dependancies
- Leaflet Routing Machine plugin.
Acknowledgements
Special thanks to @Sp3r4z. ;)
And of course, a big thank you to the OpenRoute Service team (developers, system administrators...) for providing this service for free and for the development.
And also to Per Liedman for the Leaflet Routing Machine plugin.