Я создаю AR-приложение для Android (да, еще одно), но меня больше интересует понимание математики, стоящей за ним, чем использование фреймворков (знание это и это).
Учитывая местоположения (lat1, long1) и (lat2, long2), я ищу вектор направления (x, y, z) от Location1 до Location2.
Используя этот сайт, я могу рассчитать расстояние и (начальный) азимут между Location1 и Location2.
Сейчас я разрабатываю два подхода (пренебрегая высотой)
x = distHaversine(lat1,long1,lat1,long2);
z = distHaversine(lat1,long1,lat2,long1);
if (lat1 < lat2)
z *= -1;
if (long1 > long2)
x *= -1;
а также
distance = distHaversine(lat1,long1,lat2,long2);
angle = 90.0-bearing(lat1,long1,lat2,long2);
x = cos(angle)*distance;
z = sin(angle)*distance;
но теперь я застрял и раздражен ... не должен ли результат быть таким же? Где я нахожу свою ошибку в рассуждениях? Как мне вычислить вектор направления (или, скорее: почему мой второй подход не сработал?)?
Спасибо за вашу помощь