Basic demo Leaflet Routing Machine

With leaflet control geocoder http://www.liedman.net/leaflet-routing-machine/#getting-started

by falkedesign

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.2.0/leaflet.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.2.0/leaflet.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet-routing-machine/3.2.5/leaflet-routing-machine.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/perliedman-leaflet-control-geocoder/1.5.5/Control.Geocoder.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/perliedman-leaflet-control-geocoder/1.5.5/Control.Geocoder.min.css">
<div style="height: 400px;" id="mapid">
</div>

JavaScript

var map = L.map('mapid').setView([50.27, 19.03], 8);
console.log(map);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png').addTo(map);
L.CustomGeocoder = L.Control.Geocoder.Nominatim.extend({
    suggestions: [],
    setSuggestions(arr){
      this.suggestions = arr;
    },
    createSuggestionFromMarker(marker){
      this.suggestions.push({name: marker.options.title, marker: marker});
    },
    getResultsOfSuggestions(query){
      var results = [];
      this.suggestions.forEach((point)=>{
        if(point.name.indexOf(query) > -1){
        	if(point.marker){
          	point.center = point.marker.getLatLng();
          }
          point.center = L.latLng(point.center);
          point.bbox = point.center.toBounds(100);
          results.push(point);
        }
      });
      return results;
    },
    geocode(query, resultFnc, context) {
      var that = this;
      var callback = function(results){
        var sugg = that.getResultsOfSuggestions(query);
        resultFnc.call(this,sugg.concat(results));
      }
      L.Control.Geocoder.Nominatim.prototype.geocode.call(that,query, callback, context);
    }
  })

var geocoder = new L.CustomGeocoder({});

var control = L.Routing.control({
  waypoints: [],
  router: new L.Routing.osrmv1({
    language: 'en',
    profile: 'car'
  }),
  geocoder: geocoder
}).addTo(map);

var suggestions = [
  {
    name: 'Test Car 1',
    center: [50.27, 19.03]
  },
  {
    name: 'Test Car 2',
    center: [50.10, 18.4]
  }
];
geocoder.setSuggestions(suggestions);

var marker_work = L.marker([50.27, 19.03], { title: 'MyWork', draggable: true}).addTo(map);
var marker_home = L.marker([50.10, 18.4], { title: 'MyHome', draggable: true}).addTo(map);

geocoder.createSuggestionFromMarker(marker_work);
geocoder.createSuggestionFromMarker(marker_home);