0

GTFS静的データを使用してトランジットアプリを開発したいと考えています。私が自分自身に設定した制約の1つは、アプリが最小限のモバイルデータ転送を使用する必要があるということです。したがって、すべてのデータをアプリに埋め込みたいと思います。

私の問題は、GTFSデータセットが通常非常に大きいことです(たとえば、シドニー市では85MBの非圧縮)。他のアプリでリバースエンジニアリングを少し行ったところ、一部のアプリがすべてのデータをはるかに小さなファイルに圧縮できたことがわかりました(最大で数MBについて話している)。

7zipを使用して、85MBのデータセットを5MBに圧縮することができました。これは私にとって許容できる範囲です。次のステップは、その7zファイルをアプリに使用することです。そこで行き詰まります。それを解凍してSQLデータベースに入れる方法はありません。それは、電話のスペースを使いすぎるからです。だから私は他の選択肢は何だろうと思っていました。

ありがとう

4

2 に答える 2

0

まず、埋め込みには、Embedded XZライブラリ(7zipと同様)を使用することをお勧めします。私はこれをプロジェクトに組み込み、幸運を祈りました。必ず'xz--check = crc32'を使用してデータを圧縮し、Embedded XZと互換性を持たせ、CRCテーブルを初期化することを忘れないでください。

解凍戦略に関しては、オンデマンドでデータのさまざまな部分(つまり、データベースのツリー)を解凍できるようにデータをセグメント化する必要がある場合があります。私はあなたのデータの特徴に精通していません。ユーザーはそれをすべて同時にロードする必要がありますか?それとも簡単に区画化できますか?

また、XZは、デコードする場合でも、少し遅くなる可能性があります。通常のgzipのパフォーマンスを評価しましたか?それはA)非常に速い傾向があります。B)すべての組み込みおよびモバイルフレームワークの標準部分として利用可能。

于 2013-03-25T03:12:02.477 に答える
-1

プロトコルバイナリ形式(pbf)を使用して、以前はgoogleで、現在はオープンソースになっています。コンパクトで非常に高速に検索できるため、pbfはデータベースとして機能するため、デバイスで解凍してそのデバイスのデータベースにロードする必要はありません。クエリを実行するには、コードにpbfライブラリを含めるだけです。もちろん、データをオンラインで配布する前に、一度圧縮する必要があります。

于 2013-05-26T11:37:31.323 に答える