有效地压缩ASCII中的数字(使用PHP或JS)


Efficiently compress numbers in ASCII (using PHP or JS)

在短时间内,我遇到了两次相同的问题:

  • 我有一个坐标列表(如果是地理坐标,则为纬度、经度;如果是三维OBJ文件,则为x、y、z)
  • 坐标被存储为以ASCI小数书写的数字,。。。例如3.14159265
  • 坐标有小数
  • 坐标以文本形式存储在文本文件或数据库中
  • 整群人都变得太大了

现在,我们可以简单地忽略这个问题,接受缓慢的反应或更锯齿状的形状——但它很烦人。ASCII中的十进制使用8位(其中我们只需要4来表示数字0…10),并且许多坐标共享相同的前几位。。。感觉这些文件可以很容易地压缩。压缩显然会减少一些文件,尽管它会有所不同。基本编码似乎也有帮助,但它并不像我希望的那样有效(大约30%)

使用PHP,压缩文本文件中存储的坐标的实用方法是什么

(实用意义:相当快,最好使用香草PHP)

您可以使用四键来预排序地理坐标和其他预排序算法,例如,移动到前面和挖洞轮子。四键键通常用于映射应用程序,尤其是用于贴图块,但它有一些有趣的功能。只需将地理坐标转换为二进制并连接即可。然后将其视为以4为基数的数字。这里有一个免费的源代码:http://msdn.microsoft.com/en-us/library/bb259689.aspx.然后使用类似huffman的统计压缩。在delaunay三角测量中也使用了相同的算法。