纬度经度格式错误DDDMM.MMMM 2832.3396N

Ish*_*eet 9 javascript c embedded gps latitude-longitude

我有一个gps模块,以奇怪的格式给我经度纬度.

DDDMM.MMMM
Run Code Online (Sandbox Code Playgroud)

如用户手册中所述,度数*100 +分钟.

据我所知,它是度数分钟秒,秒数在0-59之间,高于此值将增加分钟.但是这会给出小数点的分钟数.这是否意味着1/1000分钟?

eg. 07717.3644 E
077 --> degrees
17 --> minutes
3644 --> ?
E --> Direction
Run Code Online (Sandbox Code Playgroud)

我将如何将其转换为十进制,我正在使用公式

decimal = degrees + minutes/60 + seconds/3600.
Run Code Online (Sandbox Code Playgroud)

Gan*_*har 18

要将其转换为十进制格式,我们首先保留DD部分,然后简单地将MM.MMM除以60以确定十进制格式的MMM部分.

43. (48.225/60), -79.(59.074/60)  

43.(0.80375), -79.(0.98456)  

43.80375, -79.98456    
Run Code Online (Sandbox Code Playgroud)

在你的情况下

eg. 07717.3644 E is the DDDMM.MMMM format

077 --> degrees
17 --> minutes
.3644 --> minutes equals to sec/60


decimal = degrees + minutes/60 

decimal = 77 + (17.3644 / 60)  

decimal = 77.28941
Run Code Online (Sandbox Code Playgroud)

看到这个链接会帮助你

  • @Gangadhar - 死链接 (2认同)

KAR*_*N.A 5

按照算法进行转换。

var t = "7523.7983" // (DDMM.MMMM)
var g = "03412.9873" //(DDDMM.MMMM)

function lat(t){
  return (Number(t.slice(0,2)) + (Number(t.slice(2,9))/60))
}

function lng(g) {
  return (Number(g.slice(0,3)) + (Number(g.slice(3,10))/60))
}

console.log(lat(t)) 
console.log(lng(g))  
Run Code Online (Sandbox Code Playgroud)