Проверка, если два маршрута (выраженные в широте и долготе) противоположны друг другу - PullRequest
0 голосов
/ 21 марта 2019

Я ломал голову над этим. У меня есть два маршрута:

Маршрут 1

Начальная точка:

  • широта: 44,426767
  • lng: 26.102538

Конечная точка:

  • шир .: 45.031428
  • lng: 23.268939

Маршрут 2

Начальная точка:

  • лат: 45,095770
  • lng: 24.362799

Конечная точка:

  • лат: 44,857492
  • lng: 24.881478

Теперь я знаю, что эти два маршрута противостоят друг другу (если я нарисую их на карте), но я не могу понять, как сказать это математически. Я пытался изучить математические векторы, но я не понимаю, как выразить вектор по координатам широты и долготы.

Я был бы очень признателен, если бы вы дали мне толчок в правильном направлении, спасибо!

PS: мне нужно написать формулы в php.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Преобразуйте вектор широты / долготы в X / Y, используя ссылку @ matri70boss, и затем ваши 2 маршрута из A (xA, yA) в B (xB, yB) соответствуют каждому из них вектору v (xB-xA, yB-yA).

Итак, у вас есть 2 вектора v1 и v2 для ваших 2 маршрутов.Если вы сделаете скалярное произведение между ними, знак продукта скажет вам, если они указывают в одном направлении (если положительное: то же направление, отрицательное: противоположное направление, = 0: перпендикулярное).

1 голос
/ 21 марта 2019

Вы можете использовать что-то вроде этого https://gis.stackexchange.com/questions/79633/how-to-determine-vector-between-two-lat-lon-points, чтобы вычислить это, а затем сравнить.

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