正方形タイルによる地図の表現

地図を256×256ピクセルの正方形タイルに分割して表現する仕組みは、Googleによって考え出され、Googleマップに使われています。

この方式が優れた方式で使いやすいため、今では地図業界の標準仕様となっているようです。Yahoo!地図Mapionなどの地図サイトでも、この方式が導入されています。

国土地理院が提供しているタイル画像も、以前は独自の方式(正方形でないタイル)を採用していましたが、新システムになってからは、正方形タイル方式になっています。

タイルとズームレベルによる地図の表現

この仕様では、世界が1枚の正方形タイルに収まっています。
1枚のタイルで表現された世界地図が以下です。256×256のサイズに世界が収まっています。

zoom0OpenStreetMapの地図画像を掲載しています。

ただし、メルカトル図法で表現された地図ですので、緯度が高くなるほど拡大されていき、極に到ると無限大になってしまいます。そのため、緯度は北緯、南緯85度付近で切られており、地球全体が含まれている訳ではありません。

上のタイルは、中心が緯度0度、経度0度、左上の点は、緯度=約85度、経度=-180度で、右下の点は緯度=約-85度、経度=180度となっています。

この状態をズームレベル0として、次にズームレベル1を、縦横を2倍にして表現します。先ほどの地図が縦横それぞれ2倍に拡大されて、以下のようになります。各タイルのサイズは、256×256のままです。

0 1
0
1

OpenStreetMapの地図画像を掲載しています。

左と上の番号が、x,yのタイル番号です。左上のタイルは、ズームレベル1の(0,0)のタイル、右下のタイルは、ズームレベル1の(1,1)のタイルということになります。

同様に、ズームレベル2は4×4、ズームレベル3は8×8、…というように、ズームレベルが1つ上がっていくと、縦横のタイル数は2倍ずつ増えていきます。

このようにズームレベルを上げていけば、どんなに細かい地図でも表現できるというわけです。とてもシンプルな方式だと思います。

国土地理院の地理院タイル

TrailNoteで利用するのは、国土地理院が提供しているタイル画像です。

様々な地図サイトがありますが、登山用の地形図作成に使えるのは、この国土地理院のタイルだけです。他の地図サイトのタイル画像は、等高線も必要最小限しかなく、登山で役に立つ地図は得られません。

国土地理院では、このタイル状の地図画像を地理院タイルと呼んでいるようです。標準地図として、ズームレベル2から18までの画像が提供されています。

そのうち、TrailNoteでは、ズームレベル6〜18までの13段階のタイルを使用しています。

ズームレベル6でパソコン画面に日本全図がほぼ入る程度の縮尺になり、ズームレベル17になると、1ピクセルが1m弱くらいまで拡大されます。

地理院タイルでは、ズームレベル15〜17にしたときに、1/25000地形図の画像が得られます。TrailNoteでは、印刷用の画像としては、ズームレベル16(標準)とズームレベル17(高精細)の2つを使っています。

以下は、塔ノ岳の山頂部のズームレベル16と17の画像です。ズームレベル0で世界全体だった地図を、16回、17回とズームすると、ここまで拡大されることになります。

ズームレベル16(標準) ズームレベル17(高精細)
ズームレベル16 ズームレベル17

 ※国土地理院提供の地形図を掲載しています。

ズームレベル17の画像は、16と比べて縦横に2倍に拡大されています。そのため、高精細モードで印刷した地形図は、標準モードの地形図とくらべて、2×2=4倍の画素数になっていて、それだけ高密度な地形図が作成できます。

タイルが256×256である理由

なぜ、タイルのサイズが、256ピクセルなどという中途半端なサイズになっているのでしょうか。

それは、256=2の8乗だから、だと思います。

ズームレベルを1つ上げると2倍に拡大していきますので、元のタイルの画素数も2のn乗にしておくことで、計算が簡単になります。

例えば、ズームレベルnの縦横のピクセル数は、それぞれ、2の(8+n)乗で表すことができます。ズームレベル1なら、ピクセル数は縦横それぞれ256*2=512(=2の9乗)、ズームレベル10なら、縦横のピクセル数は、それぞれ2の18乗になります。

また、緯度・経度からタイル(ピクセル)の位置を計算をする式もシンプルになります。もしタイルのサイズが200×200だとしたら、計算式が複雑になり、それだけ処理が遅くなってしまいます。

コンピュータの世界では0と1の2進数が使われますので、2のn乗は扱いやすいデータになります。メモリのサイズが、8, 16, 32, 64GBなどと2のn乗になっているのも、コンピュータにとって都合が良いからです。

計算の効率だけであれば、タイルのサイズは、128×128や512×512でもよいはずですが、最も表示効率が高くなるように256×256にしてあるのだと思われます。

例えば、ウィンドウに地図を表示する場合、128×128だと、必要なタイルの枚数が多くなりますから、ダウンロード回数が多くなり、それだけ通信のオーバーヘッドが発生しますし、512×512だと、ウィンドウからはみ出て表示されない部分が多くなり、余計なデータのダウンロードに時間がかかって、表示が遅れる可能性があります。