Terrain-RGB変換サービス(試験公開)

 Terrain-RGB変換サービスは,公開されている標高数値PNGタイルをリアルタイムにMapbox Terrain-RGBに変換する無料のウェブサービスです.

 国土地理院の標高タイル(PNG形式)シームレス標高タイルなどを,QGISMapLibre GL JSなど,Terrain-RGBに対応したアプリケーションやツールで利用することができるようになります.

 ※標高数値PNGタイルとは?
 標高数値PNGタイルとは,標高値をRGB値に変換して地図タイルとして保存したもので,国土地理院の標高タイル(PNG形式)やTerrain-RGBを包含したものです.
 仕様としてはグリッドPNGタイル数値PNGタイルにあたります.数値PNGタイル自体は標高に限定されません.

QGISでシームレス標高タイル統合DEMを3D表示した例(地理院タイルの写真を使用)

※Terrain-RGB変換サービスは,現時点では機能評価のための試験公開サービスです.事前の予告なく仕様変更が行われる可能性があります.

サービスURL

https://gsj-seamless.jp/seamless/elev/php/terrainRGB.php

クエリーパラメータ―

 上記のサービスURLに続けてクエリーパラメータを指定することができます.urlパラメーターは必須ですが,それ以外は通常は省略しても問題ありません.
パラメーター内容省略とデフォルト補足
url 標高数値PNGタイルのURL 必須
r 標高数値PNGタイルの標高分解能 省略可,省略すると0.01(1cm) メートル単位
e 標高数値PNGタイルの無効値 省略可,省略すると-8388608(=-223) 24ビット符号付き整数に変換した後の値で指定します.
空白を指定すると無効値を使用しません
trr Terrain-RGBの標高分解能 省略可,省略すると0.1(10cm) メートル単位
tro Terrain-RGBの標高オフセット 省略可,省略すると-10000 メートル単位
※trr, tro: Terrain-RGBの仕様上は,標高分解能及び標高オフセットは固定値です.

サンプル

ソースとなる標高数値PNGタイル
https://tiles.gsj.jp/tiles/elev/mixed/7/50/113.png
本サービスによる変換後のTerrain-RGB
https://gsj-seamless.jp/seamless/elev/php/terrainRGB.php?url=https://tiles.gsj.jp/tiles/elev/mixed/7/50/113.png

QGISでの利用方法

 QGISはバージョン3.24からTerrain-RGBをサポートしており,本サービスを利用すると標高数値PNGタイルも利用できるようになります.DEMとして処理したり,3Dマップビューでも利用できます(このページのトップの画像).
 基本的には,XYZ TilesのURLで,Terrain-RGBのタイルURLテンプレートの代わりに「本サービスのサービスURL」+ '?url=' + 「標高数値PNGタイルのタイルURLテンプレート」を指定するだけです.Interpretationには「MapTiler Terrain RGB」を選択してください.

 QGISでTerrain-RGBを利用する方法については以下のサイトで紹介されています.
 > QGISとMapTiler Terrain RGBでかんたんDEM活用
(注)
256pxの標高タイルをそのまま使用すると,タイル境界に白い線が現れることがあります(ページトップのサンプルにも出ています).

MapLibre GL JSでの利用方法

 MapLibre GL JSではTerrain-RGBを使って3D地形を表示することができます.本サービスを利用すると標高数値PNGタイルも使用できるようになります.
 基本的には,sourcesにDEM用のソースを追加する際に,そのtilesプロパティに「本サービスのサービスURL」+ '?url=' + 「標高数値PNGタイルのタイルURLテンプレート」を指定するだけです.
 以下にサンプルコードの抜粋を示します.  

sources:[
    ...
    dem: {
        type: 'raster-dem',
        tiles: [
            'https://gsj-seamless.jp/seamless/elev/php/terrainRGB.php?url='
                 + 'https://tiles.gsj.jp/tiles/elev/mixed/{z}/{y}/{x}.png',
   	 ],
         tileSize: 256,
         maxzoom: 17
    }
}
...
terrain: {
    source: 'dem',
    exaggeration: 1
}
MapLibre GL JSでの利用サンプル
(注)
 MapLibre GL JSで標高数値PNGタイル(地理院標高タイル(PNG形式)を含む)を利用する場合は,MapLibre GL JSが提供するaddProtocol()関数を使ってJavaSciriptで変換を行った方が,本サービスを利用するよりは高速に変換できます.
MapLibre GL JS バージョン4での変換プログラムが作成され,GitHubで公開されています.

更新履歴


日付内容
2024/5/31 Terrain-RGB変換サービス公開開始