osmdroid を使ってAndroid に オフライン地図を表示する
osmdroid を使って OpenStreetMap 地図を Android に表示する
の続きです
オフライン用タイルを作成する
下記の方法がある
OSM Map Tile Packager
Mobile Atlas Creator (MOBAC)
Maperitive.net
osmdroid の Cache Manager
参考 : Offline Map Tiles
Mobile Atlas Creator (MOBAC)
携帯電話(モバイル)用のアプリケーション向けにオフラインタイルを作成するツールです。
PCにダウンロードして使用する。
日本語で表示される。
// https://mobac.sourceforge.io/
使い方
「新規作成」をクリックする。
「地図データの取得元を選択する」
OSM本家がないので、OSM Public trasport で代用する。必要なエリアを矩形で選択する
ズームレベルを選択する。
複数のズームレベルを選択できるが、タイル数も大きくなり、生成に時間がかかる。
タイル数が数百くらいであれば、1分程度で生成される。地図形式に「Osmdroid SQLite」を選択する。
Osmdroid SQLite「地図(アトラス)の構成処理を実行」をクリックする。
atlases ディレクトリにファイルが生成される。
作成したファイル(.sqlite、.zipなど)を Android端末 の SD カードの osmdroid デレクトリにコピーする。
タイルプロバイダを設定する
// File file : タイルファイル
OfflineTileProvider tileProvider = null;
try {
tileProvider = new OfflineTileProvider(new SimpleRegisterReceiver( this),
new File[]{file});
} catch (Exception ex) {
ex.printStackTrace();
}
mMapView.setTileProvider( provider );
タイルソースを設定する
ITileSource tileSource = null;
IArchiveFile[] archives = tileProvider.getArchives();
if (archives.length > 0 ) {
Set<String> sourceNames = archives[0].getTileSources();
if (!sourceNames.isEmpty()) {
String source = sourceNames.iterator().next();
tileSource = FileBasedTileSource.getSource(source);
}
}
mMapView.setTileSource( tileSource );
スクリーンショット
github にソースを公開した
MOBAC で生成した日本エリアのタイルファイルを同封してます。
Author And Source
この問題について(osmdroid を使ってAndroid に オフライン地図を表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/ohwada/items/4febbcb0fc23528fae29著者帰属:元の著者の情報は、元の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 .