【发布时间】:2011-07-09 08:18:03
【问题描述】:
我需要在我的 java 代码中实现 Harvesine 距离。
我在Javascript中找到了这个sn-p,我需要将它转换为java。
- 如何在 Java 中将纬度和经度转换为弧度?
- Math.sin 想要 Java 中的 double。我是否应该以弧度传递先前转换的值?
- Math.sin 和 Math.cos 返回 long。我应该声明 a as 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;
【问题讨论】: