メルカトル図法の歪みを実際に見てみる

この記事は、FOSS4G Advent Calendar 2014に参加していますが、FOSS4Gに関係ない方でも読める内容です。

告知:「どこでも方位図法」の地図画像をCC BY-SAにしました

記事本文に入る前にお知らせです。Twitterで多くの反響をいただき、FOSS4G Tokyo 2014でもちょっと紹介した「どこでも方位図法」ですが、地図画像部分をCC BY-SA 4.0ライセンスで自由に使っていただけるようにしました。
Tweetしたり、Facebookに投稿するのはもちろん、商用利用も可能なので、仕事用のプレゼン資料やオンライン記事などに使って構いません。「どこでも方位図法」の地図が使われているのを、どこか思わぬところで見かけるのが楽しみです(当たり前ですが、CC BY-SAの諸条件は守ってください)。

ほとんどのWeb地図はメルカトル図法

さて、本編です。
GoogleマップをはじめとするWebやスマートフォンで見られる地図は、ほとんどの場合にメルカトル図法が使われています。メルカトル図法は、中学・高校の授業でよく取り上げられますが、任意の局所的な角度が正しい、つまり等角航路が直線になるという特徴があります。しかしその一方で、距離や面積は、特に緯度が高くなるとかなり歪みます。
この記事では、実際にどれぐらい歪むのかを、FOSS4Gツールの1つであるMapnikで作成した、本州と北海道の画像で比べてみます。これらの画像の作成方法について興味がある方は、この記事末尾のFOSS4G Tokyo 2014発表資料を見てください。

まずは正しい比較地図


メルカトル図法の歪みを見る前に、別の「歪んでいない地図」が必要です。これもFOSS4G Tokyo 2014での発表資料に書いてあるので結論だけ述べると、ランベルト正積方位図法を用います。任意の面積と、地図の中心からの方位が正しい図法です。本州中心と、北海道中心のそれぞれの設定で、このランベルト正積方位図法で投影すると、両者を同一条件で見比べることができます。
この方法で作ったのが、こちらの画像です。等距離圏は、内側から順に50km, 100km, 200kmです。


メルカトル図法の場合


次に、一般的なWeb地図で使われる、赤道を基準緯線とする球面メルカトル図法で、同一ズームレベルの本州と北海道の地図を重ねた画像がこちらです。等距離圏は、円ではなく、中心から少しずつ違う方角に一定距離移動した点を計算してつなげることによって描画しています。方位線も、直線ではなく、中心からある方角に少しずつ距離を変えながら移動した点をつなげています。破線は本州に対するもの、実線は北海道に対するものです。
200kmの等距離圏が、本州と北海道でだいたい1割ぐらい違う大きさになっています。メルカトル図法の地図を切り貼りして重ねても、正しい比較にならないことが分かると思います。
もっと極端な例では、メルカトル図法だとグリーンランドとアフリカ大陸が同じような大きさになります(リンク先は、Two Maps One Scaleという外部のサービス)。

ランベルト正積方位図法とメルカトル図法の形状比較


さらに、北海道を両方の投影法でレンダリングした画像を見比べてみましょう。両者の等距離円の横幅がだいたい同じ大きさになるように縮尺を調整して、画像を重ねてみます。差を分かりやすくするために、アニメーションにしてみました。開始時がランベルト正積方位図法、そこから約1秒でメルカトル図法に変化します。
一番分かりやすいのは、水平方向(東西方向)の方位線だと思います。正積方位図法では直線だったものが、メルカトル図法になるにつれて、両端が少したわんだように変形します。また、等距離圏の上半分が、少し広がっていきます(逆に等距離圏の下半分は少し縮むのですが、分かりにくいかもしれません)。同様の変化が、画像全体に対して起こるので、北海道の上半分が全体的に少し広がって行くように見えます。
「メルカトル図法では緯度が高いほど歪みが大きい」というのは、よく知られていると思いますが、北海道程度の地球全体に比べれば狭い緯度差(約4度)でも、このように見て分かる程度の歪みの差があります。

画像作成の詳細はFOSS4G Tokyo 2014資料で

異なる場所の地図を比較したい場合、一般的なWeb地図を切り貼りしてはいけないことが分かったら、あとは自分で画像を作るだけです。Mapnikを使った地図画像作成方法については、11月のFOSS4G Tokyo 2014で発表したので、興味のある方は参考にしてください(簡単なPythonプログラミングが必要なので、一般向けではないかもしれません)。

https://speakerdeck.com/tyanagida/non-mercator-projection-with-mapnik