Это звучит как проблема "поиска по маршруту", с которой API Карт Google не имеют точного соответствия, но есть подход, который может работать достаточно хорошо для вашей цели.
Позвольте мне предположить, что вы можете делегировать вычисления движку JavaScript браузера. Затем вы можете запросить направление от начала A до конца A и использовать RouteBoxer с порогом T1 того, как далеко человек A готов отклониться от исходного маршрута, чтобы выбрать человека B.
С этим порогом вы можете построить набор ограничивающих рамок для поиска по маршруту от startA до startB на расстоянии T1 и проверки, содержится ли startB в одном из этих рамок.
Существует также пороговое значение T2 того, насколько далеко от конца B находится человек B, желающий быть отброшенным, но его можно легко рассчитать, запросив (в разных запросах) направления движения и / или пути от конца A к концу B. Если вышеприведенное (startB находится в пределах T1 от маршрута) верно, но расстояние от endA до endB больше, чем T2, тогда вы можете либо предупредить человека B, либо вообще отказаться от маршрута.
Этот проект звучит очень весело, но позвольте мне предупредить вас об одном: вы не хотите отправлять запросы в API Карт Google (особенно в API-адреса) с вашего собственного сервера, используя PHP. Не тогда, когда входные данные предоставляются пользователями в режиме реального времени. Вместо этого вы должны позволить браузеру каждого пользователя выполнять запросы, используя JavaScript. В противном случае, когда ваш сайт станет популярным, у него закончатся суточные. Прочитайте Стратегии геокодирования , чтобы узнать больше.