Проектное положение на Земле на большей высоте с местным азимутом и высотой - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть позиция на Земле (???1, ???1, ??), из которой я хочу проецировать прямую линию с известным азимутом и возвышением до определенной высоты, ?.Таким образом, получая новые координаты на проектируемой сфере, (???2, ???2, ?? + ?).

Как рассчитать ???2 и ???2 со всей другой доступной информацией?

1 Ответ

0 голосов
/ 05 февраля 2019

Изменение высоты не влияет на азимут (как проекция траектории на сферу), поэтому вы можете использовать Destination point given distance and bearing from start point сечение отсюда , чтобы получить окончательные координаты из начальных координат и пеленга:

Formula:    
φ2 = asin( sin φ1 ⋅ cos δ + cos φ1 ⋅ sin δ ⋅ cos θ )
λ2 = λ1 + atan2( sin θ ⋅ sin δ ⋅ cos φ1, cos δ − sin φ1 ⋅ sin φ2 )
  where φ is latitude, λ is longitude, θ is the bearing (clockwise from north), 
  δ is the angular distance d/R; d being the distance travelled, R the earth’s radius

JavaScript:    (all angles     in radians)
var φ2 = Math.asin( Math.sin(φ1)*Math.cos(d/R) +
                    Math.cos(φ1)*Math.sin(d/R)*Math.cos(brng) );
var λ2 = λ1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(φ1),
                         Math.cos(d/R)-Math.sin(φ1)*Math.sin(φ2));

The longitude can be normalised to −180…+180 using (lon+540)%360-180
...