正方形タイルによる地図の表現
地図を256×256ピクセルの正方形タイルに分割して表現する仕組みは、Googleによって考え出され、Googleマップに使われています。
この方式が優れた方式で使いやすいため、今では地図業界の標準仕様となっているようです。Yahoo!地図やMapionなどの地図サイトでも、この方式が導入されています。
国土地理院が提供しているタイル画像も、以前は独自の方式(正方形でないタイル)を採用していましたが、新システムになってからは、正方形タイル方式になっています。
タイルとズームレベルによる地図の表現
この仕様では、世界が1枚の正方形タイルに収まっています。
1枚のタイルで表現された世界地図が以下です。256×256のサイズに世界が収まっています。
※OpenStreetMapの地図画像を掲載しています。
ただし、メルカトル図法で表現された地図ですので、緯度が高くなるほど拡大されていき、極に到ると無限大になってしまいます。そのため、緯度は北緯、南緯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(高精細) |
---|---|
※国土地理院提供の地形図を掲載しています。
ズームレベル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だと、ウィンドウからはみ出て表示されない部分が多くなり、余計なデータのダウンロードに時間がかかって、表示が遅れる可能性があります。