Итак: у меня есть следующая функция, адаптированная по формуле, найденной в Интернете, которая принимает две координаты lat/lon и находит расстояние между ними в милях (по сферической Земле):
public static double distance (double lat1, double lon1, double lat2, double lon2) {
double theta = toRadians(lon1-lon2);
lat1 = toRadians(lat1);
lon1 = toRadians(lon1);
lat2 = toRadians(lat2);
lon2 = toRadians(lon2);
double dist = sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(theta);
dist = toDegrees(acos(dist)) * 60 * 1.1515 * 1.609344 * 1000;
return dist;
}
Насколько я могу сказать, это работает отлично.
Мне нужна вторая функция, которая, используя ту же самую модель геометрии Земли, берет одну пару лат/лон [A], заголовок и расстояние и выводит новую пару lat/lon [B ], так что, если вы начали в точке [A] и проехали заданное расстояние по заданному курсу, вы попали бы в точку [B].
Именно здесь вступает в игру тот факт, что мои геометрия меня полностью закрыли:)
Любая помощь будет очень признательна!
Спасибо, Дан