Я хочу сделать функцию, которая вычисляет угол между пользователем и одной точкой интереса (POI) со ссылкой на настоящий север.Расчет угла между пользователем и POI (Достопримечательности) в android
У меня уже есть долгота и широта моего положения и позиции POI, и теперь мне нужен угол между ними.
Вот что у меня есть:
private float calcAzimuth1(float lat0, float long0, float lat1, float long1)
{
//user's latitude and longitude
float userLat = (float) ((lat0 * ((float)Math.PI))/180);
float userLong = (float) ((long0 * ((float)Math.PI))/180);
//POI's latitude and longitude
float latT1 = (float) ((lat1 * ((float)Math.PI))/180);
float longT1 = (float) ((long1 * ((float)Math.PI))/180);
//angle between them
float angle=??}
Угол между ними со ссылкой на что? – slybloty
Извините, я забыл! Что касается истинного севера! – Ricardo
Это на самом деле довольно сложно. Степень долготы колеблется от 60 морских миль на экваторе до нуля на полюсах, поэтому преобразование в местное прямоугольное отношение расстояний требует учета этого, прежде чем принимать арктангенс. Но на более длинных расстояниях создание локального прямоугольного проектора уже недействительно. Это было продумано в некоторых местах в древности и общеизвестно о штурманах с парусным спортом, поэтому хороший навигационный праймер должен дать то, что вам нужно. Paging Nathaniel Bowditch ... http://en.wikisource.org/wiki/The_American_Practical_Navigator –