Есть бесплатный сервис для расчета расстояния между городами?
Это не расстояние, а длина маршрута.
Маршруты надо строить с помощью гугла и заносить в базу (постепенно, не всё сразу).
Думаю, что пока буду смотреть в сторону YandexApi https://tech.yandex.ru/maps/jsbox/2.1/deliveryCalc...
Там лимит запросов в 25 000 в сутки.