
目次
投影法による地図の分類
地球は球体(正確には回転楕円体)です。距離・方位・角度・面積といった球面上の “すべて” を正確に反映させたのが地球儀です。しかし、地球儀は世界全体を一度に表示することができません。持ち運びにも不便です。
そのデメリットを補うのが地図です。地図は世界全体を一度に表示することができて、持ち運びにも便利です。その代わり、地図は球体の情報を “すべて” 正確に表すことができません。
ここでは、地球の球面を平面に変換する「投影法」の違いによる地図の分類に焦点を当ててみます。
円筒図法
地球を円筒で包み、地表を投影して平面に展開する図法です。円筒図法には以下のようなものがあります。
- 心射円筒図法
- 正距円筒図法
- ランベルト正積円筒図法
- ミラー図法
- メルカトル図法 など
円錐図法
地球に円錐をかぶせるようにして投影する図法です。円錐図法には以下のようなものがあります。
- ランベルト正角円錐図法
- ランベルト正積円錐図法
- アルベルス正積円錐図法
- 正距円錐図法
- 正規多円錐図法 など
方位図法
基準となる1点から見たときの方向が正しく表される図法です。方位図法には以下のようなものがあります。
- 正距方位図法
- 心射図法
- 正射図法
- 平射図法(正角方位図法)
- ユニバーサル極心平射図法
- ランベルト正積方位図法 など
我が国の地図の図法|メルカトル図法
国土地理院が刊行する地図では、縮尺に応じて次のような図法が使い分けられています。
- 横メルカトル図法 平面直角座標系
- ユニバーサル横メルカトル図法
- 正角割円錐図法
- 斜軸正角割円錐図法
- 正距方位図法
- Web Mercator投影法
このように、地図を作成するには多様な図法を使い分ける必要があり、“すべて” を正確に表せる地球儀だけでは十分ではないことがわかります。
最もよく知られているメルカトル図法にも、横メルカトル図法、ガウス・クリューゲル図法、ユニバーサル横メルカトル図法といった複数の種類があります。
そこで、今回はメルカトル図法に迫っていきたいと思います。他の図法と比較することで、メルカトル図法の特徴が浮かび上がります。
地球儀 → 舟形多円錐図法 → 正距円筒図法 → メルカトル図法
地球儀(球面)からメルカトル図法(平面)を展開する流れは、以下のように説明できます。
まず、地球の表面を切り裂いて広げたのが、舟形多円錐図法です。下図は経度30度ごとに切断して12の舟形で構成したものです。
この舟形の地図を長方形に引き伸ばして張り合わせたのが、正距円筒図法(plate carrée)です。
この図法では、緯線・経線が直角かつ等距離に交差します。赤道上と縦方向に関して距離が正しく、面積・角度は正しくないことが特徴です。(正距:実際の距離と地図上の距離が等しいこと)
世界全体を簡便に描く場合、経緯度座標データをそのまま表示する電子地図の図法に用いられます。
そして、メルカトル図法は上下(経線)方向に押しつぶされて平らになった正距円筒図法(plate carrée projection)を、上下(経線)方向に引き伸ばして直したものです。
2つの図法の上下(経線)方向、すなわち緯度の目盛りに注目すると、引き伸ばされていることがわかります。

メルカトル図法は、角度が正しい正角図法
正確には、正距円筒図法を基に、緯度ごとに一定の割合で拡大したものがメルカトル図法(Mercator Projection)です。
このとき、緯線と経線の拡大率を一致させることで、角度が正しくなります。このような図法を、正角図法といいます。(正角:どの地点のどんな角度でも地図上に正しく投影されること)
正角であることが最も大きく影響するのが航路です。出発地と目的地を結ぶ直線と経線との角度は、航路上のどの地点でも一定です。したがって、船は羅針盤が示す角度を一定に保って航行すれば、目的地に辿り着きます。このように、2地点を直線で結んだ航路を等角航路といいます。
自船の正確な位置を測ることが困難だった時代、等角航路が簡単にわかるメルカトル図法が大いに役立ちました。

正距方位図法は、距離と方位が正しい
正角図法であるメルカトル図法を理解するうえで参考になるのが、正距方位図法(azimuthal equidistant projection)です。
この図法では、地球全体が円で表され、地図の中心から見た距離と方位が正しく表現されます。
出発地を地図の中心にすると、目的地と結ぶ直線が最短経路になります。この最短経路を大圏航路といいます。
下図は、東京を中心にした正距方位図法です。東京から世界各地までの距離と方位を確認できます。青線は、東京とサンフランシスコを結ぶ最短経路(大圏航路)を示しています。

正距方位図法 VS. メルカトル図法
正距方位図法上に、東京-サンフランシスコ間の等角航路と最短経路(大圏航路)を描くと、最短経路(大圏航路)は直線になりますが、等角航路は曲線になります。
このことから、等角航路は最短経路(大圏航路)ではないことがわかります。
一方、メルカトル図法上に上記と同じ航路を描くと、等角航路は直線になりますが、最短経路(大圏航路)は曲線になります。
このことから、最短経路(大圏航路)では、進行方向と経線の角度が一定ではないことがわかります。

Pythonで地図|パッケージ「cartopy」
上記で紹介した正距円筒図法(plate carrée projection)、正距方位図法(azimuthal equidistant projection)、メルカトル図法(Mercator Projection)の図版はPythonで描写したものです。
Pythonで地図を扱うパッケージがcartopyです。これとグラフ描画ライブラリmatplotlibを使うことで、様々な図法の描画ができます。
正距円筒図法 plate carrée projection
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(figsize=(10,10))
ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=150))
import cartopy.feature as cfea
ax.add_feature(cfea.LAND,color='#dcdcdc')
ax.add_feature(cfea.OCEAN,color='white')
ax.set_global()
ax.coastlines()
ax.gridlines(
draw_labels=True, # 軸ラベルの設定
xlocs=np.arange(-180, 180, 30), # x軸の目盛りの設定
ylocs=np.arange(-90, 90, 10), # y軸の目盛りの設定
dms=True, # 度分秒表示の設定(True:度分秒表示, False:10進表示)
)
ax.plot(139.6,35.6,"ro",markersize='6',transform=ccrs.PlateCarree()) # Tokyo北緯35.6894度 東経139.6917度
ax.plot(-122.2, 37.7,"bo",markersize='6',transform=ccrs.PlateCarree()) #サンフランシスコ湾北緯37.70833度 西経122.28028度
plt.savefig("map1.png") # PNGファイル出力
plt.show()
正距方位図法(azimuthal equidistant projection)
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(figsize=(10,10))
ax=plt.axes(projection=ccrs.AzimuthalEquidistant(
central_longitude=139.60, central_latitude=35.50))
ax.coastlines()
import matplotlib.ticker as mticker
gl=ax.gridlines(crs=ccrs.PlateCarree())
gl.xlocator = mticker.FixedLocator(np.arange(-180, 180.1, 20))
gl.ylocator = mticker.FixedLocator(np.arange(-90, 90, 10))
import cartopy.feature as cfea
ax.add_feature(cfea.LAND,color='#dcdcdc')
ax.add_feature(cfea.OCEAN,color='white')
ax.set_global()
ax.plot(139.6,35.6,"ro",markersize='6',transform=ccrs.PlateCarree()) # Tokyo北緯35.6894度 東経139.6917度
ax.plot(-122.2, 37.7,"bo",markersize='6',transform=ccrs.PlateCarree()) #サンフランシスコ湾北緯37.70833度 西経122.28028度
plt.savefig("map2.png") # PNGファイル出力
plt.show()
メルカトル図法(Mercator Projection)
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(figsize=(10,10))
ax = plt.axes(projection=ccrs.Mercator(central_longitude=150))
import cartopy.feature as cfea
ax.add_feature(cfea.LAND,color='#dcdcdc')
ax.add_feature(cfea.OCEAN,color='white')
ax.set_global()
ax.coastlines()
ax.gridlines(
□draw_labels=True, # 軸ラベルの設定
□xlocs=np.arange(-180, 180, 30), # x軸の目盛りの設定
□ylocs=np.arange(-90, 90, 10), # y軸の目盛りの設定
□dms=True, # 度分秒表示の設定(True:度分秒表示, False:10進表示)
)
ax.plot(139.6,35.6,"ro",markersize='6',transform=ccrs.PlateCarree()) # Tokyo北緯35.6894度 東経139.6917度
ax.plot(-122.2, 37.7,"bo",markersize='6',transform=ccrs.PlateCarree()) #サンフランシスコ湾北緯37.70833度 西経122.28028度
plt.savefig("map3.png") # PNGファイル出力
plt.show()
次回は、メルカトル図法の数学
図法は数学によって支えられています。冒頭で紹介した、ランベルト正積円筒図法、ガウス・クリューゲル図法といった名称に数学者の名前が付けられていることからも、それがわかります。
「正確には正距円筒図法を緯度ごとにある割合で拡大したのがメルカトル図法(Mercator Projection)」
次回はこのことを計算しながら、メルカトル図法の数学をみていきます。
インフォマティクスからのお知らせ
今回のコラムでは、投影法の種類や特徴、Pythonを使った地図描画について解説しました。
ビジネスの現場において、地図情報はGIS(地理情報システム)と組み合わせて使うことで、場所を特定するだけでなく、状況や傾向を可視化でき、業務課題の解決に役立ちます。
当社では、GIS(地理情報システム)の提供をはじめ、GISを基盤としたソリューションの開発、地図データの変換・調整を行っています。地図情報と各種の情報を連携させることで、施設配置の最適化、災害シミュレーション、インフラ構造物の点検・管理など幅広く活用いただけます。
業務でGISをどのように活用できるのか、ご興味のある方は製品・サービス紹介ページをご覧ください。
また、GISを手軽に体験してみたい方に向けて、無償版もご用意しています。
まずは操作感を、ぜひお試しください。今すぐ試してみる
GISやAI機械学習を使った業務システムの構築に関するご相談を承っています。お気軽にお問い合わせください。