Есть ли способ сделать сравнение маршрутов между двумя маршрутами с помощью любого API карты - PullRequest
2 голосов
/ 28 декабря 2011

Если Джеймс идет из пункта А в пункт Б, и Чарли идет из пункта С в пункт D,

А точки C и D лежат на маршруте точек A и B (используя Google Map, где маршрут выделен синим цветом)

Можно ли сделать так, чтобы программа совпала с этими двумя отдельными маршрутами вместе

1 Ответ

0 голосов
/ 28 декабря 2011

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, чтобы вы также могли выбирать маршруты, которые идут очень близко друг к другу (например, следующий угол улицы или что-то еще).

Возможно, есть лучшие способы, но я бы сказал, что это просто и легко читается, и, вероятно, будет достаточно быстрым:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...