1

私は現在、phonegap、cloudmade、およびリーフレットを使用した地図を備えた Android アプリケーションを開発しています。どうにかして Android フォンでマップ タイルをキャッシュする方法はありますか? 毎回サーバーからマップ タイルを読み込むのは非常に遅いです。

4

1 に答える 1

2

これは理論上の考慮事項にすぎず、リーフレットの実用的な実装はわかりません。しかし、私にはいくつかの問題がありますが、今はそれを解決する時間がありません。

Webおよびphonegapストレージ:

  1. loacalstorage-同期、base64 url​​、小さいサイズ2.5-5MBで簡単に実装できます(おそらくphonegapはlocalstorage小さいサイズの問題を解決します)。
  2. indexed dbおよびweb sql-非同期、サイズ50 MB(多分それ以上)。
  3. phonegapファイルストレージ-非同期。

実装方法:

ストレージで機能する独自のレイヤーを作成します。非同期APIではおそらく難しいでしょう。

タイルは、base64エンコーディングを使用してデータURLとしていつでも保存できます。JSとcanvasを使用して、サーバーのURLからデータのURLに画像を変換できます。

ファイルシステム上のタイルへのリンクを使用できるため、タイルのプリロードを使用してファイルストレージを使用する最も簡単な方法を使用できる場合。

非同期APIの場合、いつでもタイルを検出できます。 : idとfakeを使用して偽のタイルを挿入しzoom、タイルが見つかった場合はこのIDでストレージ内のタイルを確認します。タイルが見つかった場合はロードします。それ以外の場合は、キャッシュを使用してサーバーからロードします。latitudelongitudezoom_lat_lngsrc

UPD:たとえば、 https ://github.com/tbicr/OfflineMap/tree/master/leaflet_idb_sql_siteおよび例http://tbicr.github.com/OfflineMap/leaflet/indexのインデックス付きdbおよびwebsqlを使用したキャッシングソリューションを参照してください。 html(Androidでは高速ではありません)。

于 2013-02-19T15:56:01.203 に答える