经纬度格式互转

经纬度格式分为三种

度: ( ddd.ddddd °) 十进制小数部分(5位) 百度地图,谷歌地图,手机自带gps经纬度输出

度 . 分 : (ddd°mm.mmm’ ) 十进制小数部分(3位) GPGGA

度 . 分 . 秒 :(ddd°mm’ss’’) 谷歌地图

关系:
一度(°)等于60分钟(’)等于3600秒(“):
整度(d)等于十进制的度的整数部分(dd):
分钟(m)等于十进制的度的整数部分(dd)减去整数度(d)的60倍:
秒(s)等于十进制的度(dd)减去整数度(d)减分(M)除以60乘以3600:

度→度分秒:
lon= 104.07167°

度 = 104°

分 = 0.07167 *60 =4.3002(取整) = 4’

秒 = 0.3002 *60 =18.012(取整) =18’’

转换后 lon = 104°4’18’’

public String D2Dms(double d_data){
    int d = (int)d_data;
    int m = (int)(d_data-d)*60;
    int s = (int)(d_data-d-m/60)*3600;
    return  d+"°"+m+"′"+s+"″";
}

度分秒→度:
lon=104°4’18’’

度 = 104+4/60+18/60/60 = 104.07167°(保留5位)

转换后 lon =104.07167°

public double Dms2D(String dms_data) {
if (!dms_data.contains(“°”)||!dms_data.contains("′")||!dms_data.contains("″"))
return 0;
double d = Double.parseDouble(dms_data.split(“°”)[0]);
double m = Double.parseDouble(dms_data.split(“°”)[1].split("′")[0]);
double s = Double.parseDouble(dms_data.split("″")[1]);
return d+m/60+s/60/60;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
GNRMC是GPS NMEA-0183协议中的一种语句格式,用于传输GPS接收器的位置和速度等信息。其中包含了经纬度信息。 经纬度格式通常为度分秒格式(DMS)或度格式(DD)。度分秒格式是以度、分、秒的形式表示经度和纬度的值,例如122°45'30"表示为122度45分30秒。度格式则是以小数形式表示经度和纬度的值,例如122.7583度。 如果你需要将GNRMC语句中的经纬度信息从度分秒格式转换为度格式,可以按照以下步骤进行: 1. 从GNRMC语句中提取经纬度信息,例如$GNRMC,081836.00,A,3751.06450,N,12224.30680,E,0.038,,111220,,,A*64 2. 将经纬度的度、分、秒分别提取出来,例如上述语句中的纬度为3751.06450,表示为37度51分6.45秒。 3. 将分和秒转化为度数,例如上述纬度的度数为37+51/60+6.45/3600=37.8512361度。 4. 根据经纬度的方向(N、S、E、W)确定正负号,例如上述经度为东经122.7583度,正负号为正。 5. 将经纬度的度、分、秒合并为度格式,例如上述经度的度格式为122.7583度。 如果你需要将GNRMC语句中的经纬度信息从度格式转换为度分秒格式,则可以按照以下步骤进行: 1. 从GNRMC语句中提取经纬度信息。 2. 根据经纬度的正负号确定方向,例如东经122.7583度的方向为E。 3. 将经度或纬度的整数部分作为度数,例如122.7583度的度数为122度。 4. 将小数部分乘60,得到分数,例如0.7583×60=45.498分。 5. 将分数的整数部分作为分,例如45分。 6. 将小数部分乘60,得到秒数,例如0.498×60=29.88秒。 7. 将秒数保留两位小数作为秒,例如29.88秒。 8. 将度、分、秒组合成度分秒格式,例如122°45'29.88"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值