public class NumberUtil {
/**
* 度分
* @param lng
* @return
*/
public static double getWGS48(String lng) {
String[] lntArr = lng.trim().replace("°", ";").replace("′", ";").replace("″", "").split(";");
Double result = 0D;
for (int i = lntArr.length; i > 0; i--) {
double v = Double.parseDouble(lntArr[i - 1]);
if (i == 1) {
result = v + result;
} else {
result = (result + v) / 60;
}
}
return result;
}
/**
* 角度
*
* @param lonA
* @param lonB
* @param latA
* @param latB
* @return
*/
public static double dir(double lonA, double lonB, double latA, double latB) {
double y = Math.sin(lonB - lonA) * Math.cos(latB);
double x = Math.cos(latA) * Math.sin(latB) - Math.sin(latA) * Math.cos(latB) * Math.cos(lonB - lonA);
double bearing = Math.atan2(y, x);
bearing = Math.toDegrees(bearing);
bearing = (bearing + 180) % 180;
return bearing;
}
public static void main(String[] args) {
System.out.println(String.format("%.8f", getWGS48("27°27′")));
}
}
GPS坐标转换经纬度
最新推荐文章于 2021-03-17 11:09:01 发布