Terrain RGBタイルをサーバーにホストする

このセクションでは、前回生成したTerrain RGBラスタタイルセットをホストしていきます。

タイルをホストするには次の2つの選択肢があります。

  1. Github pagesでタイルをホストする
  2. サーバーにタイルをホストする

1. Github pagesでタイルをホストする

ルワンダのケースでは、タイルセットのサイズは1GB以下なので、Github pagesにホストしました。

  • Githubにリポジトリを作る

rw-terrainという名前でGithubにタイルをホストするリポジトリを作りました。

  • ローカルマシンにリポジトリをクローンする
git clone git@github.com:WASAC/rw-terrain.git
cd rw-terrain
  • タイルのフォルダをdocsフォルダに移動する
mkdir docs
cd docs
mv ../../dem2terrainrgb/data/tiles tiles

不要なら、tilesフォルダから*.htmlファイルを削除することができます。

  • tilesフォルダにmetadata.jsonを作る
vi metadata.json
{
  "name": "Rwanda 10m Terrain RGB Tileset",
  "description": "Rwanda 10m Terrain RGB Tileset, CC-BY-4.0: Water and Sanitation Corporation (WASAC), Rwanda",
  "version": "1"
}
  • リポジトリのルートにLICENSEファイルを作る

Creative Commons Attribution 4.0 International Licenseというライセンスをルワンダでは使っています。ルワンダのライセンスファイルを再利用することもできます。

cd ..
wget https://raw.githubusercontent.com/WASAC/rw-terrain/main/LICENSE
  • README.mdを作る

最後に, 利用者のためにREADME.mdを書くのを忘れないようにしてください。 ルワンダの[README.md(https://github.com/WASAC/rw-terrain/blob/main/README.md) を編集して作ることもできます。

  • Github pagesの設定をする

ここで、このリポジトリをGithubにプッシュをし、Github pagesの設定を行ってください。

下のようなURLでタイルセットにアクセスできるようになります。

https://wasac.github.io/rw-terrain/tiles/{z}/{x}/{y}.png

2. サーバーにタイルをホストする

ラスタタイルセットからmbtilesを作る

もしタイルセットを自身のサーバーにホストしたい場合、まずmb-utilsツールを使ってmbtilesコンテナを作る必要があります。

dem2terrainrgbリポジトリのフォルダに戻ります。

cd ~/dem2terrainrgb

tilesフォルダにmetadata.jsonを作ります。

vi tiles/metadata.json
{
  "name": "Rwanda 10m Terrain RGB Tileset",
  "description": "Rwanda 10m Terrain RGB Tileset, CC-BY-4.0: Water and Sanitation Corporation (WASAC), Rwanda",
  "version": "1"
}

最後に、mb-utilsを実行してtilesetsフォルダにmbtilesを作ります。

mb-util --image_format=png --scheme=xyz ./tiles/ ./tilesets/rwanda_dem_EPSG3857_10m.mbtiles

mbtileserverでホストする

mbtilesserverというソフトウェアを使うことができます。

mbtileserverをインストールした後、以下を実行します。

~/go/bin/mbtileserver --verbose

自動的にtilesetsフォルダの中のmbtilesを探し出し、その後http://localhost:8000/servicesにアクセスできるようになります。次のようなレスポンスを見ることができるでしょう。

[
    {
        "imageType": "png",
        "url": "http://localhost:8000/services/rwanda_dem_EPSG3857_10m",
        "name": "Rwanda 10m Terrain RGB Tileset"
    }
]

次に、続けてhttp://localhost:8000/services/rwanda_dem_EPSG3857_10mにアクセスし、詳細な情報を見てみます。

{
    "description": "Rwanda 10m Terrain RGB Tileset, CC-BY-4.0: Water and Sanitation Corporation (WASAC), Rwanda",
    "format": "png",
    "map": "http://localhost:8000/services/rwanda_dem_EPSG3857_10m/map",
    "maxzoom": 15,
    "minzoom": 5,
    "name": "Rwanda 10m Terrain RGB Tileset",
    "scheme": "xyz",
    "tilejson": "2.1.0",
    "tiles": [
        "http://localhost:8000/services/rwanda_dem_EPSG3857_10m/tiles/{z}/{x}/{y}.png"
    ],
    "version": "1"
}

タイルセットのURLは下のようになります。

http://localhost:8000/services/rwanda_dem_EPSG3857_10m/tiles/{z}/{x}/{y}.png

QGISのxyzタイルレイヤー機能を使ってホストしたタイルをチェックすることができます。

hosting-terrainrgb-qgis.png