其他分享
首页 > 其他分享> > 经纬度的格式化转换与输出

经纬度的格式化转换与输出

作者:互联网

使用RTK时,没注意输出格式,将将经纬度格式输出了弧度,非常尴尬,像下面这样

 

当然也不是什么大事,但是为了资料统一,需要将其转成下面这样:

需要用程序转换一下,这里就不自动读取了,就把经纬度的数据放在BL_rad里

 1 BL_D = rad2deg(BL_rad);        %弧度转度
 3 BL_DMS = degrees2dms(BL_D);    %度转度分秒
 5 BL_CAL = strings(size(C,1),1);
 6 % 度分秒的格式化输出
 7 for i=1:size(BL_DMS,1)
 8     %需要将个位的分补齐成2位:0X
 9     if BL_DMS(i,2)<10
11         MIN = ['0',num2str(BL_DMS(i,2))];
13     else
15         MIN = num2str(BL_DMS(i,2));
17     end
18     %需要将个位的秒补齐成2位,而且还必须保留5位小数,且转成字符数组
19     if BL_DMS(i,3)<10
21         SEC = char(['0',sprintf("%2.5f",BL_DMS(i,3))]);
23     else
25         SEC = char(sprintf("%2.5f",BL_DMS(i,3)));
27     end
28   % 没有char转成字符数组,连接不了
29     BL_CAL(i) = [num2str(C(i,1)),':',MIN,':',SEC];
31 end

比较麻烦的是秒(SEC),既要补齐2位整数,还得保存5位小数,

使用roundn(A,digits),虽然可以控制精度,但是一样不能控制输出5为小数,比如最后的0

标签:输出,分秒,格式化,经纬度,BL,rad,DMS
来源: https://www.cnblogs.com/TediousWind/p/16614381.html