集成百度地图或者高德地图后获取的经纬度都是小数的形式
1.将小数转换成度分秒
int fInt = (int) d;
BigDecimal b1 = new BigDecimal(Double.toString(d));
BigDecimal b2 = new BigDecimal(Integer.toString(fInt));
double dPoint = b1.subtract(b2).floatValue();
return dPoint;
}
public static String convertToSexagesimal(double num) {
double miao = getdPoint(temp) * 60;
nf.setMaximumFractionDigits(0);
if (num < 0)
return "-" + du + "°" + fen + "′" + nf.format(miao) + "″";
return du + "°" + fen + "′" + nf.format(miao) + "″";
}
1.将小数转换成度分秒
public static double getdPoint(double num) {
double d = num;int fInt = (int) d;
BigDecimal b1 = new BigDecimal(Double.toString(d));
BigDecimal b2 = new BigDecimal(Integer.toString(fInt));
double dPoint = b1.subtract(b2).floatValue();
return dPoint;
}
public static String convertToSexagesimal(double num) {
//获取整数部分
double temp = getdPoint(Math.abs(num)) * 60;
//获取整数部分
double miao = getdPoint(temp) * 60;
NumberFormat nf = NumberFormat.getNumberInstance();
//设置数值的小数部分允许的最大位数nf.setMaximumFractionDigits(0);
if (num < 0)
return "-" + du + "°" + fen + "′" + nf.format(miao) + "″";
return du + "°" + fen + "′" + nf.format(miao) + "″";
}
2.保留6位小数,不足补0
BigDecimal b1 = new BigDecimal(locationLatitude);String s_latitude= b1.setScale(6, BigDecimal.ROUND_HALF_UP).toString();