osmdroid を使って OpenStreetMap から オフライン地図用のタイルを取得する
osmdroid を使ってAndroid に オフライン地図を表示する
の続きです
CacheManager クラス
タイルのキャシュを管理するためのクラスです。
参考 : Cache Manager
OSMサーバーからタイル画像をダウンロードし、オフライン用のタイルファイルを作成するメッソッドがある。
downloadAreaAsync(Context ctx, BoundingBox bb, final int zoomMin, final int zoomMax, final CacheManagerCallback callback)
CacheManagerCallback のメソッド
onTaskComplete()
成功した時に呼ばれるonTaskFailed(int errors)
失敗した時に呼ばれるupdateProgress(int progress, int currentZoomLevel, int zoomMin, int zoomMax)
定期的に呼ばれるので、途中経過を表示するのに役立つdownloadStarted()
ダウンロードが開始された時に呼ばれるsetPossibleTilesInArea(int total) {
ダウンロードが始まる直前に呼ばれる
基本的な使い方
//String outputName : 出力ファイルのパス名
// 例 /storage/emulated/0/osmdroid/archive.sqlite
// MapView から表示範囲を取得する
BoundingBox bb = mMapView.getBoundingBox();
// ダウンロードする
SqliteArchiveTileWriter writer =new SqliteArchiveTileWriter(outputName);
CacheManager mgr = new CacheManager(mMapView, writer);
mgr.downloadAreaAsync( context, bb, zoommin, zoommax, new CacheManager.CacheManagerCallback() {
// コールバックの処理
});
ズームレベルを指定する UI を追加する
// SeekBar sb;シークバーの view
// MapView からズームレベルを取得して、シークバーの最大値を設定する
int max = (max)mMapView.getMaxZoomLevel();
sb.setMax( max);
// シークバーから指定されたズームレベルを取得する
int zoom =sb.getProgress();
スクリーンショット
範囲を選択するための地図
パラメータを指定するためのダイアログ
github にソースを公開した
Author And Source
この問題について(osmdroid を使って OpenStreetMap から オフライン地図用のタイルを取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/ohwada/items/93dbb157dcb2fbbd24ac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .