Рассчитать координаты между начальной и конечной точкой - PullRequest
1 голос
/ 11 июня 2010

С учетом ..

1 - GPS-координаты начальной точки,
2 - GPS-координаты конечной точки,
3 - скорость, с которой движется объект,
4 - Зная, что траектория поездки будет прямой линией ...

Как я могу рассчитать, какой будет моя GPS-координата через n минут? То есть, как я могу рассчитать свою позицию в данный момент после начала поездки до ее окончания?

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Вам необходимо использовать Thaddeus Vincenty Формулы

Это даст вам расстояние между двумя GPS-координатами (lon / lat).

Затем просто выполните

  Time = [Distance] in m / [Speed] in m/s

Предполагая равномерную скорость, это полная оценка.

0 голосов
/ 11 июня 2010

Этот метод достаточно точен только для небольших расстояний, потому что кривизна Земли не учитывается. Вы можете преобразовать псевдосферические координаты в плоские координаты, но другой метод, вероятно, будет лучше для случаев, когда расстояние велико и необходима точность.

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

distance = sqrt((end.x - start.x) ** 2 + (end.y - start.y) ** 2)

Затем вы знаете, сколько времени потребуется, чтобы пройти весь путь:

timeToTravelDistance = distance / speed

Исходя из этого, вы можете рассчитать процент расстояния, которое вы прошли от start до end с учетом time:

percentageTraveled = time / timeToTravelDistance

Наконец, интерполировать:

result.x = start.x * (1 - percentageTraveled) + end.x * percentageTraveled
result.y = start.y * (1 - percentageTraveled) + end.y * percentageTraveled
...