/**
* 将度转换为度分秒格式
* @param deg 度数
* @return 度分秒形式的字符串
*/
public static String d2dms(double deg) {
int deg1 = (int) deg;
//临时变量,将小数部分*60,转化成“分”
double temp = (deg - deg1) * 60;
//取“分”的整数部分
int min = (int) temp;
//“分”的小数部分*60,保留两位作为“秒”
String sec = String.format("%02.0f", Math.abs(((temp - min) * 60)));
//返回完整拼接字符串
return deg1 + "°" + Math.abs(min) + "'" + sec + "\"";
}
/**
* 将度分秒转换为度
* @param dms 度分秒
* @return 度数,double类型
*/
public static double dms2d(String dms) {
if (dms == null) return 0;
try {
//所有空格替换为""
dms = dms.replace(" ", "");
//按“°”符号分割字符串
String[] str = dms.split("°");
if (str.length < 2) return 0;
//第一部分为“度”
int d = Integer.parseInt(str[0]);
String[] str1 = str[1].split("'");
if (str1.length < 2) return 0;
int m = Integer.parseInt(str1[0]);
//这里不应包含最后的“/"”(秒的单位符号)
String str2 = str1[1].substring(0, str1[1].length() - 1);
double s = Double.parseDouble(str2);
double min = m + (s/60);
double deg = (min / 60) + Math.abs(d);
if (d < 0) deg = -deg;
//返回结果
return Double.parseDouble(String.format("%.7f", deg));
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
JAVA实现度分秒单位换算
最新推荐文章于 2023-04-18 14:22:51 发布