Я подобную штуку с маршрутами делал на leaflet+mapbox. Где взять координаты улиц не подскажу, у меня были фиксированные маршруты и точки остановок, но обычно линии рисуются на отдельном слое. Т.е. нужно создать слой, выяснить координаты и рисовать на этом слое. Рисовать можно всё что угодно.
Вот примеры для mapbox+leaflet:
https://www.mapbox.com/mapbox.js/example/v1.0.0/po... (с этими примерами я работал в живую)
Для google maps:
https://developers.google.com/maps/documentation/j...
Вот неплохая статья про openstreet maps:
webmap-blog.ru/obzors/znakomimsya-s-otkrytoj-js-bi...
Если не ошибаюсь, то leaflet работает и с openstreetmap. Если я не прав - подскажите, уберу это предложение.