一、问题的提出
测量中,常用的经纬度格式主要有三种:
a.小数度,ddd.ddddddddd,如39.723890912°
b.度分秒,ddd.mmsssssss,这是一种非正式的简略写法,如120.561290721,等价于120°56′12.90721″
c.带符号的度分秒,ddd°mm′ss.sssss″,如89°23′41.02091″
实际应用中,常常混用这些格式,导致很多不便。
实现这三种格式的转换非常简单,a与b的互相转换,使用EXCEL,通过简单的算术加减乘除和字符串加减就可实现;b和c的互相转换,在EXCEL中进行简单的字符替换和字符串加减就可实现。但是面对一些极端情况,EXCEL会出现一些意想不到的问题。
例如从b转换到c:

本例中,我使用LEFT和MID函数来提取指定位置和长度的字符串,提取出度、分、秒,最后再拼接。第三行出现了问题,其秒数为整数40,提取函数为MID(B3,6,2),提取结果是4,导致最终的秒数变成了4,偏差达到了36″,这个错误是无法容忍的。而且最终的格式也不规整,很不美观。一旦字符串中含有0,LEFT和MID函数会自动忽略。
我曾经用这个方法将8000多个点从格式b转到c,放在报告上。事后才发现错误,幸好报告尚未提交,还能修改,否则后果不堪设想。
也许EXCEL中有方法可以避免这种情况,但我没查到。久闻EXC
测量中,常用的经纬度格式主要有三种:
a.小数度,ddd.ddddddddd,如39.723890912°
b.度分秒,ddd.mmsssssss,这是一种非正式的简略写法,如120.561290721,等价于120°56′12.90721″
c.带符号的度分秒,ddd°mm′ss.sssss″,如89°23′41.02091″
实际应用中,常常混用这些格式,导致很多不便。
实现这三种格式的转换非常简单,a与b的互相转换,使用EXCEL,通过简单的算术加减乘除和字符串加减就可实现;b和c的互相转换,在EXCEL中进行简单的字符替换和字符串加减就可实现。但是面对一些极端情况,EXCEL会出现一些意想不到的问题。
例如从b转换到c:
本例中,我使用LEFT和MID函数来提取指定位置和长度的字符串,提取出度、分、秒,最后再拼接。第三行出现了问题,其秒数为整数40,提取函数为MID(B3,6,2),提取结果是4,导致最终的秒数变成了4,偏差达到了36″,这个错误是无法容忍的。而且最终的格式也不规整,很不美观。一旦字符串中含有0,LEFT和MID函数会自动忽略。
我曾经用这个方法将8000多个点从格式b转到c,放在报告上。事后才发现错误,幸好报告尚未提交,还能修改,否则后果不堪设想。
也许EXCEL中有方法可以避免这种情况,但我没查到。久闻EXC
