データタイルマップ - 仕様
データタイルマップは,インターネットを通じて地図上の面的なデータを提供するためのベースとなるフォーマットで,ユーザーの要望に応じて柔軟かつ高速に表示できることを目的としています.通常のWeb地図で利用されている地図画像のタイルマップを数値データに応用したもので,インターラクティブなWeb地図サービスの構築が可能になります.
本仕様では,データタイルマップの基本タイル仕様としてPNGデータタイル,PNG数値タイル,PNGパレットタイルを規定し,PNGパレットタイルで使用するJSON凡例フォーマットを規定します.
バージョン
2.2 ( 2020-01-06 )
PNGデータタイル ( PNG Data Tile )
画像ファイルフォーマット
PNG(Portable Network Graphics) 24ビットまたは32ビットRGB,8ビットインデックスカラー
タイルセットの中でファイルフォーマットが混在することは妨げません.
データ表現
PNGデータタイルでは,ピクセルのRGB(r,g,b; それぞれ256諧調で表したもの)をデータとして利用します.
RGB各1バイト(合計24ビット)で単一の値を表現する場合はスカラー型,いくつかに分割して複数の値を表現するときはベクトル型と呼びます.
実際にどのように利用するかはタイル配信サービスに依存するものとし,ここでは規定しません.
無効値
完全に透明な画素(不透明度0)は無効値として扱います.不透明度が0以外,または指定されていない場合は有効な値として扱いますが,有効な値で不透明度を指定する場合は最大値(256諧調で表した場合は255)とすることを推奨します.
タイル画像が存在しない場合は,すべてのピクセルが無効値であるとして取り扱うものとします.
タイル画像東端・南端の扱い
各セルの値がセル北西端の値を表す場合は,タイル画像東端・南端の扱いによって通常タイプと拡大タイプの2種類を規定します.このような場合は,そのままではタイル画像東端および南端の値を表現できません.これを通常タイプと呼びます.画素数を縦,横1ピクセルずつ増やして東端および南端の値を表現するものを拡大タイプとします.
PNG数値タイル ( PNG Numerical Tile )
PNG数値タイルは,PNGデータタイルの一種で,データ表現および無効値の追加についての規定を行うものです.
データ表現
ピクセルから値を取得するには,まず,R,G,Bの3バイトをこの順に並べて24ビット符号無し整数(iu)または24ビット符号付き整数(is)として整数値を得ます.次に,タイル配信サービスにより決められた定数,係数(f)及びオフセット(o)を用いた1次関数変換を行って最終的な値(v)に変換します.
変換式は以下のようになります.
(iu, isのどちらを利用するかはタイル配信サービスに依存します)
iu = 216r + 28 g + b is = iu,
iu - 224,( iu < 223 )
( iu ≧ 223 )v = f (iu または is) + o
無効値の追加
完全に透明な黒色以外に,無効値として識別する値を追加することができます.無効値を追加する場合は,符号無しまたは符号付き整数値で指定することを推奨します.
PNGパレットタイル ( PNG Palette Tile )
PNGパレットタイルは,PNGデータタイルの一種で,いくつかの限定された色のみが使用されるものです.
データ表現
ピクセルから値を取得するには,R,G,Bの3バイトをこの順に並べて24ビット符号無し整数として得ます.これをピクセル値(pv, pixel value)と呼びます.
変換式は以下のようになります.
pv = 216r + 28 g + b
凡例情報
各色に関連付けられる情報が何らかの形式で別途提供される必要があります.この情報を凡例情報と呼びます.凡例情報は次節のJSON凡例フォーマットで提供することを推奨します.
JSON凡例フォーマット ( JSON Legend Format )
JSON凡例フォーマットは,PNGパレットタイルとともに提供されることを想定したJSONフォーマットです.
ルートは後述の凡例項目オブジェクトの配列か,または凡例オブジェクトです.
凡例項目オブジェクト
凡例項目オブジェクトのメンバーは以下の通りです.名称 | データ型 | 内容 | 省略 | 補足 |
---|---|---|---|---|
r | 0~255の整数 | 色のR値 | 必須 | r,g,bの組み合わせは,ファイル内で一意でなければなりません. |
g | 0~255の整数 | 色のG値 | 必須 | |
b | 0~255の整数 | 色のB値 | 必須 | |
title | 文字列 | タイトル | 必須 | 凡例項目の内容を表す短い文字列 |
value | 6桁の16進数文字列 | ピクセル値 | 省略可 | 216r + 28 g + b |
description | 文字列 | 説明 | 省略可 | プレーン文字列またはHTMLフラグメント |
凡例オブジェクト
凡例全体の情報および各凡例項目のリストを保持するもので,使用はオプションです.凡例オブジェクトのメンバーは以下の通りです.
名称 | データ型 | 内容 | 省略 | 補足 |
---|---|---|---|---|
title | 文字列 | タイトル | 必須 | 凡例の内容を表す短い文字列 |
itmes | 配列 | 凡例オブジェクトの配列 | 必須 |
上記の各オブジェクトに新たなメンバーを追加することは任意とします.凡例項目のシンボルや凡例データ更新日等を追加できます.利用システムは,処理できないメンバーにはエラーを出さず,無視しなければなりません.
補足
- タイル画像のピクセルサイズは規定しません
- 地図投影法は規定しません
- タイル分割法,タイル画像パスの書式は規定しません
履歴
日付 | バージョン | 概要 |
---|---|---|
2020-01-06 | 2.2 | JSON凡例フォーマットを追加 |
2019-05-14 | 2.1.1 | PNG数値タイルの英語名をPNG Numerical Tileに変更 |
2019-04-03 | 2.1.0 | 基本フォーマット仕様としてのデータタイルマップ及びスカラータイルマップの名称を, PNGデータタイル及びPNG数値タイルに変更 PNGパレットタイルの規定を追加 |
2019-03-03 | 2.0.0 | スカラータイルマップの規定を追加,gifを除外 |
2019-02-13 | 1.0.1 | 透明・不透明に対する不透明度の値の誤りを修正 |
2016-05-20 | 1.0.0 | PNG標高タイル(ver 0.6.3)の上位規格としてデータタイルマップ仕様を作成 |