Как провести расчет оптимального маршрута по нескольким точкам?
Google Maps Directions API
В массиве waypoints указывай промежуточные точки.
Дял роутинга по картам опенстритмап есть несколько различных онлайн-сервисов
wiki.openstreetmap.org/wiki/Routing/online_routers
плюс еще
openrouteservice.org
большинство поддерживает промежуточные точки
все они могут выдать результат в gpx, который можно отобразить на сайте.