2011-08-01 9 views
1

iPad用のHTML5アプリを構築しており、基本的なコンテキスト情報用のマップが含まれています。選択的に地図をオフラインでキャッシュする方法が必要です(つまり、私が知っている領域に接続していないので、あらかじめ地図のその部分をキャッシュすることができます)。iPad用のOpenlayersオフラインキャッシュ

代わりに、私はそれらのWebSQLリポジトリから、私はベクトルにマップを変換する方法を、その場合には、ベクターレイヤーをレンダリングし、パンマップでこれらのベクトルを表示(間すなわちスワップすぎたり、ベクターレイヤーを追加)することができます

感謝事前に

答えて

2

2月のOpenLayers Mobile Codesprintでローカルストレージサポートを試していた人もいます。彼らが達成したことのHere is an examplejgrocha's sandboxをチェックアウトし、あなたのニーズに合ったものかどうかを調べることをおすすめします。

+0

感謝を。私はこれの前にjgrochaの例と他のものを見ました。機能をオフラインで保存するのに問題はありませんが、私が探しているのはマップタイルを保存する方法です。 – TheGwa

0

を私はそれがどのように機能するかをうまく(または場合)を参照してくださいすることにすぎ掘っていないが、あなたは移入および取得、キャッシュされたマップタイルの例があることをコードで見ることができますオフマップと呼ばれるiPod touchのアプリ。あなたがiPodで直接見ているものはすべてキャッシュします。その後、Wi-Fi上にないときにマッププログラムを使用することができ、それらのタイルはまだそこにあります。彼らがどのようにそれをしたのか分かりませんが、それは可能であることを証明します。

1

私はこれを、openlayersのサンドボックスからインスピレーションを得てcloudmade tms layer togeteherを使用して行っています。

つまり、レイヤのasyncプロパティをtrueに設定し、そのレイヤに対してgetURLasyncメソッドを提供する必要があります。この方法では、レイヤーがローカルストレージ/ Webデータベースにあるかどうかを確認し、そうでない場合はWebからタイルをロードできます。

getURLasyncメソッドは、オフラインキャッシュに存在しない場合はタイルを格納するために必要なdataurl文字列に変換するユーザーとして使用できるイメージとしてプロパティを持ちます。

あなたはここにいくつかのサンプルコードを見つけることができます応答のための http://allartk.nl/content/html5-offline-mapping