Как рассчитать и получить следующую широту-долготу, оцененную по времени между двумя точками каждые 10 минут с начальной и конечной точками?

Мне нужна помощь. У меня есть следующие 2 точки на карте: точка A lat1 / long1 и точка B lat2 / long2 на карте Google. У меня есть расстояние, прибытие, время, радиан и скорость.

С этими данными, как я могу получить расчетную долготу широты (формат карты Google) до следующей точки в 10 минут, 20, 30 и 40 минут?, Имея начальную и конечную точки.

Точка А
LAT1 = 37,78472
lon1 = -122,39913

Точка B
LAT2 = 37,78240
lon2 = -121,23208

bearingradians = 270

расстояние = 102 км

время прибытия = 50 минут

скорость = 122 км / ч

пример:
http://hmarina.sytes.net/mapagoogle.jpg

Что мне нужно, чтобы вы вычислили баллы nexts, я собираюсь использовать PHP или с чего мне начать

Спасибо

3

Решение

Есть несколько способов рассчитать это. Некоторые из них довольно сложные.

Вы могли бы использовать Формула Винсенти, который часто используется для расчета пеленга и расстояния.
Формула нуждается в Long / Lat начальной точки, подшипника и расстояния.
Я сомневаюсь, что вы хотите переопределить этот алгоритм, поэтому здесь вы идете: Реализация формулы Винсенти в PHP

Другое решение может заключаться в использовании векторов для расчета точек назначения по большому кругу с учетом расстояния и пеленга от начальной точки. Этот подход может быть немного проще, чем работать со сферической тригонометрией. http://www.movable-type.co.uk/scripts/latlong-vectors.html а также https://stackoverflow.com/a/1739066/1163786

Другой способ — рассчитать промежуточные точки на большом круге.
http://williams.best.vwh.net/avform.htm#Intermediate


Давайте использовать Винсенти здесь и пересчитаем вашу конечную точку, учитывая начальную точку, направление и расстояние:

  • отправная точка: точка А lat1=37.78472; lon1=-122.39913;
  • подшипник: approx. 89
  • Расстояние: 102 km

Результат: Широта: 37°47′42″N 37.79506902Долгота: 121°14′28″W -121.24119021

Это довольно близко к вашей точке B.


Теперь вы хотите определить будущую позицию (lang / lat), рассчитав расстояние, которое вы пройдете, исходя из вашей текущей скорости и вашего известного временного интервала.
Другими словами, ваша следующая точка находится в 10 минутах от начальной точки с учетом скорости 122 км / ч и 89 подшипников.

Рассчитать новое расстояние: 122 km/h = 2033.33 m/minитак, через 10 минут: 20333.33 m = 20,333 km approx,

Вы новые данные для формулы:

  • отправная точка, здесь: точка А lat1=37.78472; lon1=-122.39913;
  • подшипник: approx. 89
  • Расстояние: 20,333 km

И повторно запустите Vincenty с этими значениями, чтобы получить Lat / Long …


Это может быть полезно:

4

Другие решения

У тебя есть: speed = 122Km/h => Вы можете рассчитать 10 минут ходьбы (n _km)

Вы можете рассчитать расстояние с расстоянием 2 пункта

sqrt((lat1 - lat2)^2 + (lng1-lng2)^2);

у вас есть расстояние и lat1как рассчитать lat2:

Подробнее на картинке :)

1

По вопросам рекламы [email protected]