Я пытаюсь использовать формулу из (www.movable-type.co.uk/scripts/latlong.html), чтобы вернуть точку назначения с указанием начальной точки, расстояния и пеленга.Это мои значения:
int radius_km = 6371;
double d = 74.02;
double st_lat = 39.4450;
st_lat = Math.toRadians(st_lat);
double bearing = 106.1607;
bearing = Math.toRadians(bearing);
double end_lat = Math.asin( Math.sin(st_lat)*Math.cos(d/radius_km) +
Math.cos(st_lat)*Math.sin(d/radius_km)*Math.cos
(bearing) );
end_lat = Math.toDegrees(end_lat);
Когда я ввожу d, st_lat и азимут на сайте, я получаю это: 39 ° 33′28 ″ с.ш.Когда я использую приведенный выше код (который я скопировал с веб-сайта), я получаю следующее: 39.25679699255662.
Я осмотрелся еще раз, и кто-то сказал, что деление может не вернуть десятичную сумму, поэтому я заменил деление на:
BigDecimal distance = new BigDecimal("74.02");
BigDecimal strradius = new BigDecimal("6371");
BigDecimal d2 = distance.divide(strradius, 6, RoundingMode.HALF_EVEN);
double d = d2.doubleValue();
и изменил формулу на:
end_lat=Math.asin(Math.sin(st_lat)*
Math.cos(d)+Math.cos(st_lat)*Math.sin(d)*Math.cos(bearing));
Ответ, который я получаю сейчас - 39.25680143864117.Я уверен, что что-то упустил, но я не могу пройти каждый шаг вычисления, чтобы увидеть, где я нахожусь.У кого-нибудь есть пошаговые инструкции, как это сделать?Буду весьма признателен за это.Благодарю.