У меня есть две координаты GPS
например (широта1, долгота1) и (широта2,долгота2)
Может ли кто-нибудь помочь мне найти угол между этими двумя точками.
Значения должны быть от 0 до 360 градусов.
У меня есть две координаты GPS
например (широта1, долгота1) и (широта2,долгота2)
Может ли кто-нибудь помочь мне найти угол между этими двумя точками.
Значения должны быть от 0 до 360 градусов.
Взято из этот предыдущий пост SO:
float dy = lat2 - lat1;
float dx = cosf(M_PI/180*lat1)*(long2 - long1);
float angle = atan2f(dy, dx);
M_PI
и atan2f
?
- person FaCoffee; 15.12.2016
M_PI
— пи. См.: gnu.org/software/libc/manual/html_node/ atan2f
– это arc tangent of y/x
, см.: en.cppreference.com/w /c/numeric/math/atan2
- person Firzen; 16.08.2019
Я полагаю, вы имеете в виду азимут, а не угол между местоположениями: если (lat1,long1) хранится в объекте Location
loc1
, а (lat2,long2) хранится в loc2
, вы получаете направление от loc1 к loc2 следующим образом:
float bearing = loc1.bearingTo(loc2);
Результат находится в градусах к востоку от истинного севера и его начального азимута (что важно, если loc1 и loc2 далеко друг от друга).
В классе Location
есть и другие полезные методы, подробнее см. здесь: http://developer.android.com/reference/android/location/Location.html
РЕДАКТИРОВАТЬ: я предположил Android для ответа, но да, теги не подразумевают, что ...
homework
. - person   schedule 05.03.2012