Как мне видется как то так
Есть на входе файл csv с адресами пока там 3000 штук пользоваться пока планируем разово,
задается адрес начальной и конечной точки (планируется будет один и тот же)
Задается время которым располагаем, например 5 часов
Программа рассчитывает самый ближайший сегмент и проводит по нему маршрут на эти 5 часов.
либо другой вариант
шагом 1ым разделяет весь массив адресов по секторам которые максимально кучкуются и которые можно объехать за 5 часов каждый.
А далее далается выгрузка адресов этих секторов в csv, потом импортиркется 1 сектор и проводится кратчайший маршрут.