vt
で作業)スタイルファイルのデザインとmbtilesが完成したら、いよいよベクトルタイルをgh-pagesにデプロイします。postgis2vectortilesのモジュールがベクトルタイルの生成とデプロイを一貫して行なってくれます。
デプロイするには二つのケースがあります。
もし対象エリアが狭い場合は、ナロックウォーター
のアプローチでデプロイすることができます。次のリポジトリを参照してください。
mbtiles
を生成します。mbtiles
をpbf(mvt)
タイルに変換します。このモジュールはmapbox/tippecanoeを使用してmbtilesを生成します。しかしながら、ナロックウォーターのGISマシンはWindows10 Proのため、tippecanoe
の実行が困難であり、Docker
を使用してベクトルタイルを生成するツールを開発しました。
もし対象エリアが広い場合は、Github pagesに数千のベクトルタイルをデプロイすることは容易ではないでしょう。WASAC
のアプローチを使って、mbtiles
を先にアップロードした後、Github Actions
でmbtiles
からベクトルタイルを取り出すと良いです。次に示すリポジトリをご覧になってください。
mbtiles
を生成します。 postgis2mbtiles
モジュールはローカルマシンに実行します。mbtiles
をpbf(mvt)
タイルに変換します。 mbtiles2pbf
はGithub Actions
で実行します。次のものはナロックウォーター
が使用しているGithub Actions
でmbtilesタイルからpbfタイルを生成しデプロイするためのワークフローファイルです。
name: Node.js CI
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 12.x
- run: npm ci
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
- run: npm run extract
- name: configure git and deploy
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |
git config --global user.name "narwassco+githubci"
git config --global user.email "narwassco+githubci@users.noreply.github.com"
git remote set-url origin https://x-access-token:${NODE_AUTH_TOKEN}@github.com/narwassco/vt.git
npm run deploy
ナロックウォーター
も[narwassco/vt-map
アプローチ]の代わりに、[WASAC/vt
アプローチ]を使い始めました。
ナクルウォーター
も[WASAC/vt
アプローチ]を使い始めました。
Github Pagesは最大で1GBの容量制限があります。もしこの制限をデータサイズが超えるようなら、gh-pagesへデプロイすることはできません。
しかしながら、もしかしたらNetlifyを使うというオプションがあるかもしれません。
ルワンダでは、ベースマップとしてParcels(筆)データを追加したいという要望がありました。ルワンダ全国のParcelsデータは元々シェープファイルで8GB、pbfのベクトルタイルに変換したところ1.2GBほどになりました。しかしながら、Netlifyを用いてParcelsをデプロイすることに成功しています。
どのように大きなベクトルタイルをNetlifyにデプロイできたか、次のリポジトリが参考になるでしょう。
Parcelsデータが非常に巨大であったため、PostGISからGeoJSONを取り出してtippecanoeを使用することができませんでした。そのためこのケースでは、watergis/mvt-generatorというモジュールを開発し、PostGISから直接pbfタイルを作成することにしました。vtリポジトリで行っていることとはちょっと違うアプローチになっています。