相关疑难解决方法(0)

Java:关于弧度,Math.cos,Math.sin,double和long的问题

我需要在我的java代码中实现harvesine距离.

我在Javascript中找到了这个片段,我需要将其转换为java.

  1. 如何在Java中将纬度和经度转换为弧度?
  2. Math.sin想在Java中使用double.我应该以弧度为单位传递先前转换的值吗?
  3. Math.sin和Math.cos返回很长时间.我应该声明一个长的并将其传递给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;
Run Code Online (Sandbox Code Playgroud)

java math

10
推荐指数
3
解决办法
5万
查看次数

标签 统计

java ×1

math ×1