質問

それぞれのサイズが 256x256 の 15K/60K/240K の画像で構成されるさまざまな解像度でマップをラスタライズし、マップを表示できる .NET Compact Framework アプリケーションを持っています。しかし、300kのファイルをSDカードにコピーするにはかなりの時間がかかり、約35〜60時間(私は15Kだけコピーしましたが、約2〜2.5時間かかりました)、FAT16ファイルシステムが破壊されるのではないかと心配しています(ハードウェアがサポートしていません) FAT32 なので、fat16 を fat32 に切り替えることはできません)、またはコピー後のすべての動作が非常に遅くなります。

すべての写真は次のように保存されます。/mapdata/res{解像度}/x{x_coord}/y{y_coord}.png

埋め込み可能な DB は役に立ちますか?それとも、すべての y*.png をアーカイブした状​​態で、/storage/res1/x12.zip のような zip に画像を圧縮する必要がありますか?それとも、これらすべての写真を含む ISO イメージを作成し、ISO をバイトごとに SD にコピーするだけでよいでしょうか?

役に立ちましたか?

解決

FAT16 は 65,535 クラスタに制限されており、ファイルごとに少なくとも 1 つのクラスタが必要です。これにより、フラット ファイルのみの使用が除外されます。

マップ タイルは読み取り専用であると想定しているので、あなたが制御するタイル用のカスタム ファイル形式を作成するルートをとります (分解するのに少し手間がかかるという追加の利点もあるかもしれません)それは間違った種類の手に渡ります)。

おそらく次のようなことでしょう:

  • 何らかのヘッダーがあるため、それが自分のファイルであることがわかります。
  • ファイルの先頭から「ゼロ」ズーム レベルのタイルまでのオフセットとその長さ (バイト単位) を含むタプル
  • ズーム レベル「1」のタイルのオフセットと長さの 4 つのタプル
  • ...
  • ズーム レベル「n」のタイルのオフセットと長さの 4^(n) タプル
  • 実際のタイル データ。

特定のタイルのオフセットを検索し、ストリームの終わりを報告するときに「正しいこと」を行うようにストリームをオーバーライドするのは比較的軽量です。エンコードする場合は、「タイルなし」ピクチャに同じオフセットを使用することもできます。正方形にきれいに収まらない地域(たとえば、イギリス)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top