「地図中心」 2011年1月号 (日本地図センター発行)

Googleマップの投影法
インターネット時代におけるメルカトル図法の再評価

佐藤 崇徳さとう たかのり

ネット地図の投影法は?

[地図を表示できません]
図1 Googleマップで世界全体を表示させた画面

 今や多くの人にとって、地図はインターネットで無料で見るものとなってしまった感がある。 2000年代半ばから次々と登場したAjaxと呼ばれる技術を利用した地図は、ページの切り替えを伴うことなく、画面をスクロールすることによって隣接する地域の地図を連続的に表示でき、また、拡大・縮小(縮尺の変更)も非常にスムーズにできる。 このような地図は「スクロール地図」と呼ばれ、インターネット上の地図の標準形となっている。

 ところで、このスクロール地図がどんな地図投影法を使っているかについて気に留めたことはあるだろうか。 スクロール地図の代表格「Googleマップ」で地図を縮小していくと、最後には世界地図が表示される(図1)。 それを見ると分かるが、Googleマップではメルカトル図法が採用されている。 「Yahoo! 地図」もメルカトル図法である。 また、日本の1:25000地形図相当の地図画像だけで、世界地図を表示することはできないものの、国土地理院の地図閲覧サービス「ウオッちず」も実はメルカトル図法を採用している。 インターネット上のすべての地図サイトとはいわないが、メルカトル図法を採用しているスクロール地図は多い。

 メルカトル図法といえば、数ある地図投影法のなかでも知名度が高く、多くの人がその名を聞いたことくらいはあると思われる。 また、少し地図に詳しい人なら、「高緯度ほど大きく描かれており、あれが世界を正しく表しているわけではない」という知識は持っているだろう。 この「メルカトル図法→正しくない」という知識はそれなりに浸透しているようで、例えば、現在の学校の地図帳では、世界地図にミラー図法などが用いられ、メルカトル図法はほとんど使われていない。

 では、なぜ今、Googleマップをはじめとするいくつかのスクロール地図でメルカトル図法が採用されているのだろうか。

巨大な世界地図

Picture
図2 舟形多円錐図法による世界地図 世界地図ソフトウェア「PTOLEMY」にて作成
Picture
図3 正距円筒図法による世界地図
Picture
図4 メルカトル図法による世界地図 緯度85度までの範囲を描いてある。

 ここで、地図投影法について、本稿に必要な範囲で、ごく簡単におさらいしておきたい。 球体である地球の表面をそのまま平面に展開して表すことはできない。 ミカンの皮をむく要領で地球の表面を切り裂いたと考えると、図2のようになる。 これでは1枚の世界地図とはいえないので、隙間を埋めるように左右(東西)方向に引き伸ばしていき、1枚の長方形の世界地図にしたのが図3である。 これは正距円筒図法とよばれる投影法で、経度・緯度を平面上のXY座標の値に割り当てたものである。 その変換(つまり地図投影)の簡便さから、多くのGISで標準的な地図投影法として用いられている。

 しかし、いま述べたように、この地図は東西方向にのみ引き伸ばされている。 しかも、高緯度ほど大きく引き伸ばされている。 これでは横長に歪んだ地図になり、地表の形状が正しく表されない。 そこで、東西方向に引き伸ばしたのと同じ比率で、南北方向にも引き伸ばしたものが図4である。 これならば、地球上のある狭い範囲における形状は、どの場所でも正しく表される(この性質を「正角」という)。 ただし、高緯度ほど大きさが誇張されて描かれる。 また、北極点・南極点は赤道から無限遠の位置に描かれることになるので、地図上に表すことができない。 これがメルカトル図法である。

 では、なぜスクロール地図でメルカトル図法が採用されているのか。 画面をスクロールしていけば、隣接する場所の地図が次々と表示される。 初めに東京を表示させておいても、シームレス(つなぎ目なし)にどこまでも(海を越えて、北京でもロンドンでもニューヨークでも)表示可能だ。 あたかも1枚の巨大で詳細な世界地図があるかのようだ。 小さな窓を通して、その一部しか一度に見ることはできないが、小窓の位置を動かせば、世界地図のどの部分でも見ることができる。 その“巨大な世界地図”がメルカトル図法で描かれている。

 先述したように、メルカトル図法では、地図上のどの場所においても、その狭い範囲においては、地表の形状が正しく表現される。 高緯度ほど大きく描かれるので、緯度の異なる場所と距離や面積を比較するには適切ではないが、ある狭い地域内を見るうえでは問題は生じない。

背景には技術的な制約

 しかし、表示される範囲に応じて最適な投影法や基準緯線を選んで地図を描けばよいのではないかという指摘もあろう。 どんな投影法であろうと地図の中心付近はほぼ正しい形状・大きさで描かれるから、メルカトル図法である必然性はないとも考えられる。 確かにそれは一理あるが、現実にはそのようにはしていない。

 インターネットの地図というと、利用者が「ここの地図が見たい」とアクセスするたびに、ベクトルデータからコンピューターが地図を描画(投影)していると思われるかもしれないが、そうとも限らない。 情報を発信する側のコンピューター(サーバー)にそれをさせようとすると、Googleマップのような有名なサイトの場合、世界中の利用者から殺到するリクエストにサーバーの処理能力が追いつかない恐れがある。 一方、情報を受信する利用者側のパソコンに地図投影の作業を担わせようとすると、大量のベクトルデータをネット経由で送り込む必要があるほか、OS(Windows/MacOS等)やブラウザー(インターネット閲覧ソフト)の種類が異なるさまざまなコンピューターに地図投影を行うプログラムを組み込む必要があり、簡単にはいかない。

 そこで、Googleマップでは、あらかじめ縮尺(ズームレベル)ごとに1枚の巨大な世界地図を描いておき、それをタイル状に細かく分割した画像ファイルをサーバー上に用意している。 利用者から「ここの地図が見たい」というリクエストがあるたびに、その範囲の地図画像を送信しているのだ。 「1枚の世界地図で、しかし、どこの狭い範囲を抜き出しても地表の形状が正しく描かれている」という条件を満たすのは、メルカトル図法ということになる。

 つまり、スクロール地図でメルカトル図法を採用している背景には、インターネットでのデータ伝送速度やコンピューターの処理能力という、インターネットの初期からある、技術的な制約があるといえる。

地図表示の舞台裏

Picture
図5 Googleマップにおける地図タイルの構造 地図はすべて1辺256ピクセルの正方形のタイル画像で構成される。 地図中の数字は赤い点で示した地点の座標値(地図の左上を原点とする)を示す。 本図では都合上、地図画像はGoogleマップではなく、世界地図ソフトウェア「PTOLEMY」にて作成したものを用いている。

 Googleマップを例に、地図画像の送信・表示についてもう少し詳しくみてみたい。 ズームレベル0(最も縮小した状態)では、1辺が256ピクセルの正方形の画像で世界地図が描かれている(図5)。 すなわち、メルカトル図法で横(西経180度~0度~東経180度)の長さが256ピクセルとなる縮尺で世界地図を描き、縦は赤道を中心に南北が256ピクセルとなる範囲(北緯約85度~南緯約85度)で切り落としている。

 1段階拡大したズームレベル1では、同じ範囲の世界地図が、2倍の大きさの1辺512ピクセルの正方形の画像で描かれる。 ズームレベル0のときの地図上での東京の位置が、地図の左上を原点として(a, b)という平面座標の値で表されたとすると、ズームレベル1では(2a, 2b)という座標値で表されることになる。 実際には、この世界地図は縦横それぞれ2分割されて、1辺256ピクセルの正方形の画像ファイル4枚から構成される。 この世界地図が分割された画像をタイルというが、これにもXY座標の要領で番号を振ってやれば、東京の位置はどのタイルのどこ(座標値)であるかは簡単な計算で求めることができる。

 さらにもう1段階拡大したズームレベル2では、世界地図はさらに2倍の大きさの1辺1024ピクセルの正方形の画像で描かれ、1辺256ピクセルの正方形のタイル画像16枚(縦4枚×横4枚)で構成される。 このように1段階拡大するごとに縮尺は2倍になっていき、ズームレベルnのときの世界地図を構成するタイル画像の枚数は2×2枚と指数関数的に増えていく。 それでも、東京がどのタイルに含まれ、その画像中のどこであるかというXY座標の値は比較的簡単な計算で求めることができる。

 Googleマップでは、利用者側のパソコンでそれを計算し、必要なタイル画像をサーバーから受信して、表示させている。 利用者が画面をスクロールしていき、東隣のタイル画像が必要になるようであれば、パソコンが裏でサーバーにそれをリクエストし、受信した画像を現在表示している画像の右隣に貼り合わせて表示することで、つなぎ目のない地図表示を実現している。

 このような平面座標をベースにした、シンプルでコンピューターに負担をかけない仕組みにしているために、Googleマップでは、縮尺や地域によって投影法や基準緯線などを使い分けることなく、メルカトル図法を採用しているのだと考えられる。

 結果的に、緯度85度以上の地域はGoogleマップでは地図の範囲外となってしまうが、ここは北極海と南極大陸で、街や道路があるわけではない。 Googleマップで想定される一般的な利用シーンでは問題とならないと判断したのだろう。

緯度によって伸縮するスケールバー

[地図を表示できません]
[地図を表示できません]
図6 緯度によって異なるGoogleマップのスケールバー 左:沖縄県那覇市、右:北海道稚内市 いずれもズームレベル13での表示画面
[地図を表示できません]
図7 Googleマップでの大圏コースと等角コースの表示 Google Maps APIを使ったウェブページの例。 成田空港とフランス・パリのシャルルドゴール空港を結ぶ大圏コースおよび等角コースを表示させた。

 同じズームレベルでも高緯度ほど大きく描かれるというメルカトル図法の性質に、Googleマップは何も手を打っていないわけではない。

 スケールバーは、表示される地域の緯度に応じた縮尺で表示されるようになっている。 緯度の異なる地域の地図を表示させてみると、同一のズームレベルにもかかわらず、スケールバーが異なっている(図6)。 地図を南北方向へスクロールすれば、スケールバーは伸縮する。 スケールバーは単純な線分なので、利用者側のパソコンで、画面中央に表示される場所の緯度に合わせて縮尺を計算し、地図上にオーバーレイするように描画しているのだろう。

 また、Googleマップを自分のウェブページに組み込み、地図表示などの機能をカスタマイズできるAPIという仕組み(Google Maps API)が用意されており、それには地図上の2地点間を結ぶ線を描く機能があるのだが、地図上に直線で描くほかに、球面上での最短コースである大圏コース(実際には、それに近似した折れ線)を描くこともできる(図7)。 地理の教科書などで、世界地図に大圏コースを記入した解説図を見かけることがあるが、Google Maps APIをうまく使えば、任意の2地点間の大圏コースを描くことができる。 その状態で拡大・縮小も可能であるから、「成田空港とロンドン・ヒースロー空港を結ぶ大圏コース上に我が家がある」といった、ちょっとした“発見”もできるかもしれない。

Google Maps APIを使って筆者が作成した、大圏コースや緯度・経度を表示するウェブページがあるので、関心のある方は、ぜひお試しいただきたい。

ネット時代における地図と投影法

 本稿では、Googleマップを中心に、インターネットのスクロール地図でメルカトル図法が採用されている理由について考察してきた。 世界全体を地図に表す場合に、どのような投影法が適切かといった地図学的な検討は棚上げにして、技術的な事情からかなり割り切った選択をしているといえる。 その一方で、ネット経由で地図にアクセスし、縦横無尽にスクロールするほか、任意の地点を中心に拡大・縮小しながら見る範囲を変えていくというインターネット時代の地図の使われ方に、メルカトル図法の性質がうまくマッチし、メルカトル図法が再評価されているともいえる点はたいへん興味深い。


このページは,日本地図センター発行の「地図中心」2011年1月号(通巻460号)(特集 「丸い地球を平らな世界へ ― 今、地図投影法が面白い!」)に掲載された内容を,同センターの許諾を得て転載したものです。


佐藤崇徳のホームページへ戻る