Угол между 2 координатами GPS
Я работаю в другом приложении для iPhone, которое использует AR, и я создаю свой собственный фреймворк, но у меня возникли проблемы с получением угла второй координаты относительно текущего положения устройства, кто-нибудь знает хороший ресурс, который мог бы помочь мне в этом?
Заранее спасибо!
2 ответа:
Если две точки находятся достаточно близко друг к другу и далеко от полюсов, можно использовать простую тригонометрию:
Я забыл упомянуть, чтоfloat dy = lat2 - lat1; float dx = cosf(M_PI/180*lat1)*(long2 - long1); float angle = atan2f(dy, dx);
latN
иlongN
- и, следовательно,dx
иdy
- могут быть в градусах или радианах, если вы не смешиваете единицы измерения.angle
, однако, всегда будет возвращаться в радианах. Конечно, вы можете получить его обратно в градусах, если вы умножите на 180/M_PI.
Вот версия этого кода для android
import com.google.android.maps.GeoPoint; public double calculateAngle(GeoPoint startPoint, GeoPoint endPoint) { double lat1 = startPoint.getLatitudeE6() / 1E6; double lat2 = endPoint.getLatitudeE6() / 1E6; double long2 = startPoint.getLongitudeE6() / 1E6; double long1 = endPoint.getLongitudeE6() / 1E6; double dy = lat2 - lat1; double dx = Math.cos(Math.PI / 180 * lat1) * (long2 - long1); double angle = Math.atan2(dy, dx); return angle; }