2016-08-31 12 views
0

私のイオンアプリケーションでリーフレットマップを使用しています。オフラインでもリーフレットにレイヤーを読み込む

オフラインでは、デフォルトで開いているストリートマップレイヤーが読み込まれますが、ズームレベルを変更すると地図が消えます。

オフラインでズームしたときに地図を表示するにはどうすればよいですか?

答えて

0

オフラインモードで動作するように、タイルイメージをダウンロード(プリキャッシュ)する必要があります。

あなたが望むズームレベルでタイルをダウンロードしてください。地図データが非常に大きいので、ズームレベルや地理的境界(都市、国など)の小さなサブセットに限定したい場合があります。

OSMの具体的なタイル使用ポリシーは次のとおりです。http://wiki.openstreetmap.org/wiki/Tile_usage_policyあなたのアプリに適用されますが、このさ:オフライン以降の使用のための

特に

、ズームレベルでのタイルの重要な領域をダウンロード 17と高いが、システム管理者との事前協議なしに 禁じられています。

このページには、多数の「フリー」タイルプロバイダも記載されています。私はそれが時間の経過とともに「かなり」変化すると予想しているので、コピーして貼り付けるつもりはありません。

タイルプロバイダと何らかの契約/契約を締結していない限り、自分でレンダリングするか、タイルをプリキャッシュすることができる別のタイルサービスを見つける必要があります。

タイルとしてレンダリングすることができる地図データをダウンロードするための詳細はOSMのウェブサイト上で見つけることができます:http://wiki.openstreetmap.org/wiki/Downloading_data

ありOSMからデータを取得するための複数の方法がありますが、これらのサービスとオプションは間違いなく時間の経過とともに変化しますだから私はそれがちょうど彼らのウェブサイト(上記のリンクが壊れている場合はGoogle "開いているストリートマップのデータをダウンロード")を参照することが最も安全だと思う。

私はBruTileと呼ばれる.NETライブラリを使用して、タイルキャッシュを管理しています。しかし基本的には、ズーム/グリッド構造で整理された画像ファイルの束です。

"ionic leaflet tile cache"や "pre cache map tiles ionic"などのGoogle検索トピックにも適しています。まだそこにはたくさんのことはありませんが、これは発展の領域です。 (a)は、彼らが古くなり、一定の維持費が必要になりますので、あなたはそれはおそらく、プリキャッシュされたタイルを配置しても意味がありませんモバイルデバイスに展開する場合は、モバイルアプリの

に関する

思考、 (b)ファイルサイズが大きいためダウンロードが遅くなります。アプリをインストールした後にオンラインでタイルをダウンロードする方が良いでしょう。

WindowsとAndroidの両方の携帯電話で地図のアプリにオフラインの地図データをダウンロードできます。そのデータを活用することは可能かもしれません。それ以外の場合は、アプリを同様に動作させることができます。地域の地図をダウンロードし、地図が必要な地域(地理的エリア)を合理的に指定する方法を探します。また、メータリングされたデータプランやデバイスストレージ用にダウンロードされるデータの量をユーザーに知らせることもお勧めします。

また、OSMサーバー以外の有料のMicrosoftやMapQuest、Bingなどのサーバーを使用する方がよいでしょう。 OSMサーバーは、マップをオフラインで動作させたいすべてのSPAで本番負荷を処理することはできません。可能であれば、デバイスの機能やビルトインマップアプリに頼ることをお勧めします。 AmazonとAzure(例えば)サービスはこれに実現可能かもしれません。独自のサービスを自分のサーバー上で実行するように独自のプログラムを書いたのであれば、タイルサービスからタイルをプリキャッシュすることができ(したがって、使用料とサーバーの負荷を減らすことができます)、アプリケーションはサーバーからマップデータを取得します。これにより、独自のカスタムタイルで創造するチャンスも得られます。

+0

OSM **データ**と**タイル**の違いを主張してください。データのダウンロードは無料ですが、レンダリングエンジンを使用する前に(ほとんどの場合、ラスタータイルとして)リーフレットで使用する必要があります。タイルをダウンロードすることは別の話です。 _bulk downloading_/tiles _scraping_と呼ばれ、OSMのような無料サービス(通常、[Tile usage policy](http://wiki.openstreetmap.org/wiki/Tile_usage_policy)を参照)によって禁止されています。有償のサービスであっても、それを制限したり、エンドユーザーがトリガーするダウンロード(プリキャッシュなし)のみを許可することがあります。 – ghybs

+0

^^ありがとうございます。 ghybsのように、あなたはサービスが定義するどのような使用ポリシーの対象でもあります。データからタイルをレンダリングするために使用できるさまざまなツールがあります。私が作業しているプロジェクトは、通常、地図データをタイル(道路などにレンダリングされたOSMの「方法」)に変換するESRIサーバーに依存し、ユーザーのデバイスはESRIタイルをダウンロードします。私はBruTile for .NETを使用しましたが、iOS用の独自のソリューションを行う必要がありました。私はマイクロソフトがXamarinのライセンスを最近無料で利用できるようにしていると思います。 'z/x/y'のようにいくつかの構造チラシが必要なだけです。 – nothingisnecessary

+0

OSMの' significant'の定義はなんですか? – nothingisnecessary

関連する問題