在系统级编程语言如 C、 C + + 或 D 中,存储经纬度的最佳类型/编码是什么?
我看到的选择是:
deg = (360/2^32)*val
简单解决方案(FP)的主要缺点是它的分辨率高度不均匀(在英国的某个地方,它可以测量微米,而在日本,它不能)。这里还有 FP 比较之类的问题。其他选项需要在数据生命周期的不同部分付出额外的努力。(生成、展示、计算等)
一个有趣的选择是浮动精度类型,随着纬度的增加,它得到更多的位,而经度得到更少(因为它们越来越接近两极)。
相关问题没有完全涵盖这一点:
顺便说一下: 32位给你一个赤道上约0.3英寸的 E/W 分辨率。这是接近规模,高级 GPS 设置可以工作在(IIRC,他们可以下降到约0.5在某些模式)。
OTOH 如果32位均匀分布在地球表面,你可以索引一边大约344米的正方形,5字节给出21米,6B-> 1.3米和8B-> 5毫米。
我现在脑子里没有一个特定的用途,但是我以前用过这种东西,并且希望在某个时候再次用到它。