1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 经纬度度与度分格式转化

经纬度度与度分格式转化

时间:2023-08-07 20:29:37

相关推荐

经纬度度与度分格式转化

前言

在做定位服务的时候,惯导设备的经纬度数据经常以度分格式的形式输出,而我们要进行业务处理时,则经常要将度分格式转化为度的格式,方便计算。在查找了一些资料之后,记录了解决的办法,方便后面查看。

一、度分秒是什么?

通过百度百科可知:在数学中,表示角度的度、分、秒分别使用°、′、″符号进行表示,度与分 、分与秒之间一律采用六十进制,1°=60′,1′=60″ ,1°=3600″。经纬度是经度与纬度组成的坐标系,是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。

二、转化方法

1.度转化成度分格式

度分格式的经纬度的转换可以如下实现:

将度数的整数部分(例如从dd.ddddd中的dd)乘以100,作为分数部分。将度数的小数部分(例如从dd.ddddd中的.ddddd)乘以60,并与整数部分相加,即得到dddmm.mmmm。

具体代码如下:

#include <stdio.h>#include <math.h>void convert_to_dddmm_mmmm(double ddd, int *dddmm, double *mmmm){*dddmm = (int)ddd;*mmmm = (ddd - *dddmm) * 60;}int main(void){double ddd = 123.456789;int dddmm;double mmmm;convert_to_dddmm_mmmm(ddd, &dddmm, &mmmm);printf("%.6f -> %d %.4f\n", ddd, dddmm, mmmm);return 0;}

2.度分格式转化成度格式

读取度、分和秒的值将分和秒的值除以60,得到小数部分将度的值加上小数部分得到的结果就是度格式的值

以下是从dddmm.mmmm格式转换为dd.ddddd格式的C语言代码:

#include <stdio.h>#include <math.h>void convert_to_dd_ddddd(int dddmm, double mmmm, double *ddd){*ddd = dddmm + mmmm / 60;}int main(void){int dddmm = 123;double mmmm = 45.6789;double ddd;convert_to_dd_ddddd(dddmm, mmmm, &ddd);printf("%d %.4f -> %.6f\n", dddmm, mmmm, ddd);return 0;}

总结

以上就是经纬度度与度分格式相互转化的方法,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。