Java: вопросы о радианах, Math.cos, Math.sin, double и long

Мне нужно реализовать расстояние жатки в моем java-коде.

Я нашел этот фрагмент в Javascript, и мне нужно преобразовать его в java.

  1. Как я могу преобразовать широту и долготу в радианы в Java?
  2. Math.sin хочет двойной в Java. Следует передавать ранее преобразованное значение в радианах или нет?
  3. Math.sin и Math.cos возвращают long. Должен ли я объявить как длинный и передать его в Math.sqrt или преобразовать в double?

спасибо

dLat = (lat2-lat1).toRad();
dLon = (lng2-lng1).toRad(); 
a = Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
    Math.sin(dLon/2) * Math.sin(dLon/2); 
c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
d = R * c;
return d;
10
задан skaffman 5 March 2011 в 09:46
поделиться