压缩坐标的有趣方法(lat / lng)

时间:2014-11-02 17:41:24

标签: algorithm compression geometry coordinates

任务

存储约400,000,000个坐标(lat / lng),平均密度远高于1 /(50×50)m 2 尽可能高效。

生成穿过所有坐标的折线,然后使用谷歌的折线 - 压缩算法:https://developers.google.com/maps/documentation/utilities/polylinealgorithm?csw=1

问题

查找仅通过包含短段的所有坐标的折线,因为折线压缩算法仅在段很短时才有效。

问题

您如何看待这个想法?你认为它比其他压缩方法更好吗?如果没有,你会推荐哪种方法来完成这项任务?

3 个答案:

答案 0 :(得分:1)

更简单但类似的方法是将点分类为网格,并且每个网格内仅存储来自中心(或角落)的偏移。如果对点使用定点表示,这将最有效,在这种情况下,网格间距可以是量子的两个幂。

答案 1 :(得分:0)

你可以尝试一个四核。将坐标转换为二进制并交错。把它当作一个基数为4的数字。然后使用gzip或统计压缩。

答案 2 :(得分:0)

如果将点表示为图像,则可以使用任何标准的无损图像压缩方法。你可以节省更多的空间来制作一个只有alpha的图像,或者进一步采用点的存在/不存在的2d位向量。

需要注意的是,您必须为图像选择分辨率。例如,假设您选择1像素/米分辨率,然后代表5k x 5k区域,您需要5MB X 5MB图像。但是如果你选择使用一个位向量,它应该进一步减少到6.25k x 6.25k的图像。再一次,那没有压缩。如果您的数据没有很多高频区域,那么压缩将产生巨大影响。

修改

未压缩文件的大小将很大 - 对于5km x 5 km的区域,大约40G。但您可以选择将区域拆分为多个重叠区域。通过压缩可以大大减小尺寸,而访问数据的速度是恒定的时间,因为数据可以直接索引。