map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(55.758611, 37.616638), 10);
map.setUIToDefault();
var startpoint = "55.75585, 37.62036";
var endpoint = " ";
add_direction(startpoint, endpoint);
function add_direction(startpoint, endpoint)
{
direct = new Gdirections();
…
GEvent.addListener(direct,"error", function() {
alert("Location(s) not recognised. Code: "+direct.getStatus().code);
});
GEvent.addListener(direct,"load", function(){…}
direct.loadFromWaypoints([startpoint,endpoint],{getPolyline:true,getSteps:true});
}
poly = direct.getPolyline();
map.addOverlay(poly);
ms = new GMarker(poly.getVertex(0),{'draggable': true, 'icon': G_START_ICON});
me = new GMarker(poly.getVertex(poly.getVertexCount()-1),{'draggable': true, 'icon': G_END_ICON});
GEvent.addListener(ms, "dragend", change_position);
GEvent.addListener(me, "dragend", change_position);
map.addOverlay(ms);
map.addOverlay(me);
var descr = "";
for(i=0;i<direct.getRoute(0).getNumSteps();i++)
descr = descr + '<br>' + (i+1)+'. ' + direct.getRoute(0).getStep(i).getDescriptionHtml();
descr += ' : ' + direct.getDistance().html;
document.getElementById('route_descr').innerHTML = descr;
Source: https://habr.com/ru/post/80777/