Top | 日本の山岳データベース | GPS 入門 | 装備品 | 本棚 | 技術研究本部 | ブログ || 旧ウェブサイト
日本は山だらけ〜 技術研究本部 報告書 第四号 平成二十四年五月十七日 公開

正方タイル地図

(書きかけです)

概要

Google マップ の地図は縦横 256 ピクセル(ドット)の正方形のタイルに小分けされた画像をブラウザ上で貼り合わせることにより、スクロール可能な地図を実現しています。OpenLayers というフリーの地図表示用 JavaScript ライブラリでも同様の仕様になっており、256 ピクセル正方タイルによる地図表示がインターネット時代の事実上の標準になっています。国土地理院の開発している電子国土も平成24年度中に現在の独自仕様をやめ、この正方タイルによる地図に変わるそうです。ここではそのように正方タイルでできた地図を「正方タイル地図」と呼ぶことにします。電子国土の画像でグーグルアースに地形図を表示したりと、遊んでいたのですが、自分で作成したスクリプトが使えなくなりそうなので、この正方タイルによる地図について調べてみましので、ここにまとめておくことにします。

正方タイル地図の例として、ここでは Open Street Map 用のタイル画像を作成している Andy Allan 氏が運営しているフリータイル画像サイト Thunderforest のタイル地図画像を利用しています。

メルカトル図法

国土地理院の 2 万 5000 分の 1 地形図は「ユニバーサル横メルカトル図法」で書かれていますが、正方タイル地図は「メルカトル図法」になります。メルカトル図法は高緯度地域でゆがみが大きくなり、とくに面積比で比べると高緯度にあるグリーンランド面積が赤道付近と比べると17倍にも拡大されます。一見、問題のある図法かもしれませんが、地図を拡大していき、全世界に対して十分狭い地域で見れば、そのゆがみはほとんど無視できるほど小さくなります。ただし「縮尺」が緯度によって変わることに注意が必要です。

メルカトル図法と正方タイル

メルカトル図法では高緯度になるほど経度(東西)方向が伸びますので、それにあわせて緯度(南北)方向も伸ばして描画します。 メルカトル図法では高緯度はゆがみが大きくなりますので北緯 85.0511 度以上、南緯 85.0511 度以上をカットし、赤道一周分を横に貼り付け、この北緯 85.0511 度から南緯 85.0511 度までを縦に貼り付けます。そうするとちょうど正方形になります(正方形になるように高緯度地域をカットした、というのが本当は正しい。)

レベル 0 の正方タイル地図

経度 0 度、緯度 0 度を中心に、横方向に西経 180 度から東経 180 度、縦方向に北緯 85.0511 度から南緯 85.0511 度までを縦横 256 ピクセルの正方型の画像に描画します。これが「レベル 0」の正方タイル地図です。地球の赤道半径は 6,378,137m です (WGS84 による定義)。従って、赤道の一周は 40075016.68m になります。経度 0 度を中心に考えると、東西 -20037508.34m から 20037508.34m が 256 ピクセルで表されていることになります。この -20037508.34 から 20037508.34 の値をメルカトル図法上の座標として用います。縦も同様です。つまり左上の座標が (-20037508.34, -20037508.34) で、中心は (0,0)、右下は (20037508.34, 20037508.34) になります。単位は一応メートルですが、正しいのは赤道上だけですので単位はつけない、単なる数値として扱うべき値です。

レベル 0 の正方タイル地図
横 256 ピクセル
-20037508.34 〜 20037508.34

レベル n の正方タイル地図と URL

正方タイル地図では拡大レベルが 1 つ上がると地図画像は左右 2 倍に拡大され、先ほど 1 枚で表現されていた世界地図が 4 枚のタイルで表されることになります。タイルの番号を x (横)と y (縦)の 2 つで (x,y) のように表します。左上のタイル番号が (0,0) で右下が (1,1) です。Open Layers では画像の URL を、拡大レベル z とタイル番号の x と y を用いて " /(z)/(x)/(y).png" という様に表します。 ですので、タイル番号が分かれば簡単に地図画像を取り出すことができます。たとえば下の図の左下 (0,1) のタイル画像の URL は http://a.tile3.opencyclemap.org/landscape/1/0/1.png になります。

レベル 1 の正方タイル地図
(0,0)(1,0)
(0,1)(1,1)

日本は (1,0) のタイルの右下にありますので拡大レベル 2 ではそのタイル番号は (3,1) になります。 以上のことから拡大レベルが z の時のタイル番号の最大値は x, y それぞれ (2z - 1) になります。たとえば、z=5 の時、タイル番号の最大値は 25 - 1 = 32 - 1 = 31 になります。

レベル 2 (3,1) のタイル画像

さらに拡大してみます。

レベル 3 の正方タイル地図
(6,2)(7,2)
(6,3)(7,3)

(続きは執筆中)



Copyright © 2007-2012   やまだらけ   無断転載禁止   Since 2007/7/26   このウェブサイトについて
当ウェブサイトで使用しているテキスト、情報、画像等の権利は、明記してある場合を除き全て やまだらけ に帰属します。無断転載は一切禁止します。 当データベースの情報に限り、複製・二次利用等は出典を明記すれば自由に行うことができます。