Как вычислить угол между двумя пересекающимися линиями, имея точки широты / долготы в Java? - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть три точки широты / долготы, P1, P2 и P3.Они демонстрируют две пересекающиеся линии L1 и L2.P1 и P2 находятся в L1 и L2, соответственно.P3 - точка пересечения линий.Угол между линиями легко вычислить, имея заданную информацию в евклидовом пространстве.Однако точки представлены в формате широта / долгота.Итак, как я могу рассчитать угол между линиями с Java?Спасибо

1 Ответ

0 голосов
/ 20 сентября 2018

Вы хотите получить угол между двумя подшипниками.

Направление на Землю может быть рассчитано по формуле: широтная страница

Formula:    θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )

where   φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)

JavaScript:    (all angles     in radians)

var y = Math.sin(λ2-λ1) * Math.cos(φ2);
var x = Math.cos(φ1)*Math.sin(φ2) - Math.sin(φ1)*Math.cos(φ2)*Math.cos(λ2-λ1);
var brng = Math.atan2(y, x).toDegrees();

После нахождения подшипников от P3 до P1 и от P3 до P2 (обратите внимание, что порядок значим - P3P1 и P1P3 дают разные результаты) рассчитать разницу.

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