Если использовать OSM, то есть вот способы узнать маршрут между точками:
Routing/online_routers
Я бы рекомендовал
OSRM, на гитхабе можно прочитать про
API.
Ну а дальше по полученным путям искать пересечения и пытаться понять кто в какой временной промежуток может в них оказаться.