GPS定位点数据,一般是6位精度的浮点数
其纬度范围可定义为-90~90(-89.999999~89.999999)
其经度范围可定义为-180~180(-179.999999~179.999999)
但是microPython解析float型,会丢失精度(好像是保留4位小数),因此在解析GPS坐标数据的时候,可以换个思路,将其解析为扩大100万倍的整型,方法如下:
def gnssParseValue(value): # 传入的参数是一个字符串,'3158.4608'这样的,解出形如31974346的整数
if not (len(value)):
return 0
fval = float(value)
d = int(float(fval) / 100) # 得到“度”部分
m = int(fval * 10000) - d * 1000000 # 得到“分”部分,且其值扩大了10000倍
return int(m * 100 / 60 + d * 1000000) # 输入 '3158.4608',得到 31974346,扩大了1000000倍的整型结果
4字节整数的范围是-2147483647~2147483647,可以满足GPS定位点的7位精度,本例中用到了6位,基本不会出现定位精度缺失