OpenMapTilesのファイル

今回は、OpenMapTilesのホームディレクトリに収容されるファイルを確認します。

OpenMapTilesのホームディレクトリ直下のファイル

OpenMapTilesのホームディレクトリ直下に収容されるファイルは以下の6つです。(説明用の.mdファイルを除く)

  • quickstart.sh
  • Makefile
  • docker-compose.yml(docker-compose-MINGW64.yml)
  • .env
  • .env_postgres
  • openmaptiles.yaml

以降に、各ファイルの内容や役割を確認していきます。

quickstart.sh

quickstat.shの先頭部分を確認してみましょう。

quickstart.shの先頭部分の抜粋

Usageの記載から以下のことがわかります。

  • 引数に–emptyオプションを付与するとpreloadイメージを使用しない
  • 第一引数でエリアを指定(デフォルトはアルバニア)
  • 第二引数でダウンロード先を指定(3種類、デフォルトはgeofabrik)

以下にquickstart.shの抜粋(203行目あたり)を示しますが、多くがmakeコマンドにて実行されており、後述のMakefile(makeのデフォルトファイル)に実際の処理が記述されていることがわかります。

quichstart.shの抜粋

Makefile

次に、Makefileの内容を確認しましょう。

Makefileの抜粋

多くのコマンドがあるようです。
試しに、makeコマンドの引数に”list-geofabrik”を指定してGeofabrikデータの一覧を確認してみましょう。

Geofabrikのデータ一覧を表示

”docker-compose run”にて、openmaptiles-toolsイメージが起動されていることがわかります。また、実行終了時にコンテナの削除が指定(–rm)されています。
GeofabrikとはOSMデータの無償ダウンロードサービスを提供するドイツの会社です。以下に、OSMデータ(osm.pbf)のダウンロードページを示します。

Geofabrikのダウンロードページ

docker-compose.yml

openmaptilesのDockerコンポーネントはdocker-composeを使って起動しています。
このファイルには以下のDockerコンポーネントの起動情報が記載されています。

  • postgres
  • import-data
  • openmaptiles-tools
  • generate-changed-vectortiles
  • generate-vectortiles
  • postserve

以下にdocker-compose.ymlの抜粋を示します。
環境ファイルとして、.envファイルや.env-postgresファイルが指定(下図の黄色枠部分)されていることがわかります。

docker-compose.ymlの抜粋

.env、.env-postgres

.envおよび.env-postgresの各ファイルは、変換時のパラメータやPostgreSQLのアカウント情報などを指定するファイルです。
.envファイルを確認すると、以下のようなパラメータを指定しています。

  • レイヤ定義ファイル(後述するopenmaptiles.yaml)
  • ズームレベル(0から7まで)
  • 作成するmbtilesのファイル名(tiles.mbtiles)
.env抜粋

次に、.env-postgresファイルを確認します。

.env-openmaptilesファイルの内容

このファイルは8行しかありませんが、PostgreSQLのデータベース、ユーザー、パスワードが書かれています。
黄色枠内には、”.envと同期してください”と書かれていますが、この理由は、Makefileには.envファイルを、docker-compose.ymlには.env-postgresファイルをインポートして設定情報に利用しているためと思われます。

openmaptiles.yaml

このファイルは、タイルに関する雑多な情報を定義したファイルのようです。
以下に抜粋を示しますが、タイルのレイヤ情報や属性の言語情報、投影法の情報(SRID=900913)などが書かれています。

openmaptiles.yamlの抜粋

また、このファイルはMakefileにて変数”TILESET_FILE”として定義されており、openmaptioles-toolsの引数として使用されています。

Makefileの抜粋

ファイル間の関係

ファイル間の関係を図で整理すると、以下のようになります。

openmaptilesのファイル間の関係

まとめ

ここまで、openmaptilesのホームディレクトリ直下に収容されるファイルの内容を確認しました。
基本的には、MakefileにていくつかのDockerコンテナを起動する仕組みで、アルバニアの地図作成で使用したquickstart.shは、この仕組みを1つのシェルスクリプトで実行するためのものです。

シェルスクリプト→makeファイル→Dockerコンテナという、ちょっとカオスな感じの世界ですが、OSSを組み合わせて利用者の求める機能を実現するための一つの答えなんだなと感じた次第です。

次回は、postgis-preloadedコンテナに収容されるデータを確認してみようと思います。