1/25000地形図の作り方

座標の変換2点間の距離の計算の方法が分かりましたので、ようやく1/25000地形図を作成することができそうです。

TrailNoteでは、以下のようにして1/25000地形図を作成しています。
用紙サイズはA3縦とし、余白は無しの場合で説明します。

A3の紙の大きさは297mm×420mmです。この用紙に、1/25000図を印刷する場合に収めるべき地図の範囲を求めます。

1/25000図には、10mmに250mが収まることになりますので、そこから計算すると、297 * 250 / 10 = 7425,  420 * 250 / 10 = 10500となります。

つまり、A3用紙に、7425m×10500mの範囲の地図画像を押し込むと、1/25000図になります。

ということは、印刷の中心座標から、東西にそれぞれ7425/2=3712.5m、南北にそれぞれ10500/2=5250m、移動した位置の座標が分かればよさそうです。

これをヒュベニの公式を使って調べたいと思いますが、ヒュベニの公式は、2点の座標を渡して、その距離を求める公式ですから、直接、中心座標から5250m北の緯度を求めることは難しそうです。

そこで、中心座標から0.01度北の点と0.01度南の点の距離を調べます。そこから、今の位置では、1kmが何ピクセルに相当するかが計算できます。ピクセル座標を計算するときのズームレベルは、標準では16、高精細では17とします。

具体的には、以下のようになります。

y1: 中心から0.01度、北の点のピクセルy座標
y2: 中心から0.01度、南の点のピクセルy座標
d: y1とy2の距離

南北1kmに相当するピクセル数py = (y2 – y1) * 1000 / d

これが分かれば、中心位置から5250m北のピクセル座標ny、5250m南のピクセル座標syは、

ny = 中心位置のピクセル座標y – (py * 5250) / 1000
sy = 中心位置のピクセル座標y + (py * 5250) / 1000

となります。dはヒュベニの公式、y1, y2は、座標の変換式を使えば求められます。 同じ方法で、左端、右端のピクセル座標も求められます。

これで、印刷すべき範囲(7425m×10500m)の左上のピクセル座標、右下のピクセル座標が分かります。

この方法では、厳密には少し誤差が出ます。0.01度北に移動した位置では、1kmが何ピクセルに相当するかが少し変わるからですが、確認してみたところ、その誤差は高精細印刷時に利用しているズームレベル17においても1ピクセル未満でしたので、無視できる誤差です。

印刷範囲の上下左右のピクセル座標を256で割ると、その画像を含むタイル座標が計算できます。ダウンロードしたタイルはそれぞれ256×256の大きさです。そこから印刷に必要な部分だけを抜き出します。

Macでは、PDFを簡単に生成できるようになっています。画面上に地図を描画するのと、ほとんど同じ処理で出力できてしまいます。違う点は、最初にサイズを指定する部分くらいです。

用紙サイズの指定には、mmやpixelといった単位ではなく、ポイント数で指定します。ポイント(pt)というのは、出版の分野で使われる単位で、1pt = 1/72インチ (= 25.4/72mm = 0.353mm)です。

A3用紙のポイント数は、842×1191です。このサイズのPDFを生成します。
印刷する場合も、一度PDFデータを作成して、それをプリンタに渡すようにしています。

あとは、ダウンロードした地図画像の必要な部分をPDFに書き出すだけです。

これで、1/25000地形図のPDFが生成できました。実際は、余白分を計算したり、地形図の色を変える、磁北線やルートを描くなどの処理が必要になります。

印刷に必要な画素数

タイルでの地図表現方法では、楕円体の地球の地図をタイル状にして表現しているため、緯度が高くなるほど歪みが大きくなります。赤道上の地球一周と、北海道の緯度での地球一周が、同じ画素数で表現されることからも、緯度が高いほど、同じ距離に対する画素数が増えることが分かると思います。

具体的に、どのくらいの差があるか見てみます。

高精細画質(ズームレベル17)で、利尻山(北海道)と雲取山(東京)、宮之浦岳(鹿児島)で比べると、A3横10500m×7425mの同じ大きさを表す範囲は、以下のように変わります。

利尻山 雲取山 宮之浦岳
範囲
画素数 12451×8834ピクセル 10834×7695ピクセル 10117×7232ピクセル
縦横比 1:0.7095 1:0.7103 1:0.7148

※国土地理院提供の地形図を掲載しています。

北に位置する利尻山ほど、必要な画素数が増えています。同じ1/25000図を作成するのに、利尻山と宮之浦岳では、横が2000ピクセル以上、縦が1600ピクセル以上も違いがでます。

そのため、同じA3横の印刷でも、位置が変わると印刷範囲を示す緑色の枠のサイズが変わります。見た目ではほとんど分かりませんが、緑枠をドラッグすると、緑枠の大きさが微妙に変わっていきます。

画素数の他に、縦横比もわずかに異なります。これを、A3用紙いっぱいになるように押し込めば、1/25000地形図を作成できるはずです。

本当にこれで、1/25000地形図ができるでしょうか。こちらで検証しています。