将奇怪的lat / lng格式转换为十进制

时间:2015-01-27 15:33:07

标签: gps rgeo

我有一个设备以他们描述为'ddmm.mmmm'的格式向我报告其位置

它看起来像这样:

纬度:5108.5837 N. 经度:00052.6334 E

任何人都知道如何将其转换为可以与RGeo一起使用的正常十进制数?

1 个答案:

答案 0 :(得分:1)

好的,我已经解决了,对于任何可能遇到相同格式的人来说,它比我想象的要简单。

Latitude: 5108.5812 N
Longitude: 00052.6289 E

度是小数点前最后2位数之前的任何值(例如51或000)

分钟是其余的,秒数表示为小数分钟,所以你只需要这样做:

51.0 + (8.5812 / 60.0) = 51.14302
0.0 + (52.6289 / 60.0) = 0.8771483333

如果纬度为S,则将其否定

如果经度是W,则否定它

作为参考,如果你也有秒,你可以这样做:

degrees + (minutes.to_f / 60) + (seconds.to_f / 3600)

有一定程度,60分钟是1度,60秒是1分钟(60 * 60 = 3600)