API направлений дает вам a start_location
и end_location
широту и долготу для каждого шага в маршруте - простое решение будет:
hasStart = false
for all points P in route1:
if (hasStart == false && P.start == route2.start) hasStart = true;
if (hasStart == true && P.end == route2.end) // the routes match
Конечно, если вы хотите знать, находится ли route1 внутри route2, вам придется сделать это дважды. Кроме того, вы, возможно, захотите допустить небольшую ошибку в P.start == route2.start
, чтобы вы также могли выбирать маршруты, которые идут очень близко друг к другу (например, следующий угол улицы или что-то еще).
Возможно, есть лучшие способы, но я бы сказал, что это просто и легко читается, и, вероятно, будет достаточно быстрым:)