经纬度度与度分格式转换方法详解
前言
在做定位服务的时候,惯导设备的经纬度数据经常以度分格式的形式输出,而我们要进行业务处理时,则经常要将度分格式转化为度的格式,方便计算。在查找了一些资料之后,记录了解决的办法,方便后面查看。
一、度分秒是什么?
通过百度百科可知:在数学中,表示角度的度、分、秒分别使用°、′、″符号进行表示,度与分 、分与秒之间一律采用六十进制,1°=60′,1′=60″ ,1°=3600″。经纬度是经度与纬度组成的坐标系,是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。
二、转化方法
1.度转化成度分格式
度分格式的经纬度的转换可以如下实现:
具体代码如下:
#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.度分格式转化成度格式
以下是从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;
}
总结
以上就是经纬度度与度分格式相互转化的方法,