0

我正在寻找使用 GTFS 静态数据开发交通应用程序。我给自己设置的限制之一是应用程序应该使用最少的移动数据传输。因此,我想将所有数据嵌入到应用程序中。

我的问题是 GTFS 数据集通常非常大(例如,悉尼市的 85MB 未压缩)。我已经对其他应用程序进行了一些逆向工程,发现其中一些已经设法将所有数据压缩到一个小得多的文件中(我说的最多只有几 MB)。

使用 7zip,我设法将我的 85MB 数据集压缩到 5MB,这对我来说是可以接受的。下一步是让我在我的应用程序中使用那个 7z 文件,这就是我卡住的地方。我无法将其解压缩并将其放入 SQL 数据库中,因为这会占用手机上的太多空间。所以我想知道我的其他选择是什么。

谢谢

4

2 回答 2

0

首先,对于嵌入,我推荐使用Embedded XZ 库(类似于 7zip)。我已经将它嵌入到一个项目中,并祝你好运。请务必使用“xz --check=crc32”压缩数据,使其与嵌入式 XZ 兼容,并记住初始化 CRC 表。

至于解压策略,您可能需要对数据进行分段,以便您可以按需解压数据的不同部分(即数据库树)。我不熟悉您的数据特征。用户是否需要同时加载所有内容?还是可以很容易地划分?

此外,XZ 可能有点慢,即使是解码也是如此。您是否评估过常规 gzip 的性能如何?这往往是 A) 非常快;B) 作为所有嵌入式和移动框架的标准部分提供。

于 2013-03-25T03:12:02.477 回答
-1

使用协议二进制格式 (pbf),以前是 google,现在是开源的。它紧凑且可快速搜索,因此无需在设备上解压缩并将其加载到该设备上的数据库中,因为 pbf 充当数据库。只需在您的代码中包含 pbf 库即可对其进行查询。当然,您必须在在线分发数据之前对其进行一次压缩。

于 2013-05-26T11:37:31.323 回答