2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

osmdroid を使ってAndroid に オフライン地図を表示する

Last updated at Posted at 2019-02-13

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/

使い方

  1. 「新規作成」をクリックする。

  2. 「地図データの取得元を選択する」
    OSM本家がないので、OSM Public trasport で代用する。

  3. 必要なエリアを矩形で選択する

  4. ズームレベルを選択する。
    複数のズームレベルを選択できるが、タイル数も大きくなり、生成に時間がかかる。
    タイル数が数百くらいであれば、1分程度で生成される。

  5. 地図形式に「Osmdroid SQLite」を選択する。
    Osmdroid SQLite

  6. 「地図(アトラス)の構成処理を実行」をクリックする。

atlases ディレクトリにファイルが生成される。

作成したファイル(.sqlite、.zipなど)を Android端末 の SD カードの osmdroid デレクトリにコピーする。

atlas.png

タイルプロバイダを設定する

// 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 );

スクリーンショット

6_offline_map.png

github にソースを公開した

MOBAC  で生成した日本エリアのタイルファイルを同封してます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?