8
5

More than 3 years have passed since last update.

webp 標高タイルを作った話

Posted at

国土地理院の dem10b png 標高タイルを Mapbox Terrain-RGB 互換の webp 標高タイルにした話です。

 2021-04-04 7.35.05.jpg

 2021-04-04 7.18.01.jpg

デモサイト

次の場所にあります。日本全国どこでも大丈夫です。
https://optgeo.github.io/10b256/#10.95/32.8211/131.1339/-64.7/58

自然地名を重ねあわせたものもあります。
https://optgeo.github.io/shizen/#12.58/35.66726/138.19146/42.9/62

作り方

次の場所にレポジトリがあります。
https://github.com/optgeo/10b256

Rakefile と transcode.rb をみていただけると、ほぼ全てカバーされると思います。概要は、次の通りです。

  1. mokuroku.csv.gz を使って、タイルを一枚一枚ダウンロードする。
  2. 自作のスクリプトで、ピクセル単位でトランスコードする。
  3. png ファイルとして保存する。
  4. cwebp コマンドを使って、webp ファイルに変換する。

タイルは GitHub Pages にあげているので、自由にお使いください。テンプレート URL は、global.conf 及び hocon/style.conf にあるとおりで、次のものになります。

https://optgeo.github.io/10b256/zxy/{z}/{x}/{y}.webp
minzoom: 3
maxzoom: 12

タイルセットのサイズ

生産したタイルセットのサイズは、ズームレベルごとに見れば次の通りとなりました。GitHub Pages でホストしてもらえるのは 1GB までなので、z=3..12 のみを上げています。

z=0 12KB
z=1 12KB
z=2 12KB
z=3 24KB
z=4 36KB
z=5 92KB
z=6 268KB
z=7 772KB
z=8 2.6MB
z=9 8.9MB
z=10 32MB
z=11 113MB
z=12 397MB
z=13 1.3GB
z=14 3.5GB

なお、途中で cwebp の -z オプションの値を変えたりしていますが、いずれにしても、z=13, 14 のサイズがこれだけ大きいと、日本全国分を GitHub Pages 一レポジトリ分でまかなうことは難しそうです。特定の地域まで z=3..14 をホストすることは考えられるかもしれません。

日本全体でざっくり 5GB 程度なので、日本を10程度に分割しておいて、それぞれの地域について z=14 まで GitHub Pages にホストしてもらう、というアプローチになるのではないかと思います。

例えば、z=6 モジュールごとにやってみるというのは試してみるべきチャレンジだと思いますし、z=7 でやるとすれば、それは安全なアプローチであって良いと思います。

8
5
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
8
5