ワールドファイル

地図上に画像を貼り付けるには画像の位置情報を与える必要があり、位置情報を与えるための手段の一つがワールドファイルである。

ワールドファイルは貼り付けたい画像と同じ階層に配置し、画像と同じファイル名で、画像拡張子の一番前と一番後ろの文字、末尾に「w」をつけてそれを拡張子とする。以下はその例である。

  • 画像ファイル名が「sample.png」の場合
    ワールドファイルのファイル名は「sample.pgw」
  • 画像ファイル名が「test.jpg」の場合
    ワールドファイルのファイル名は「test.jgw」

ワールドファイルはテキストで記述され、以下のような書式である。

2.5
0.0
0.0
-2.5
357907.598664
3994193.441964

1行目:x方向の1ピクセル間距離
2行目:xの回転パラメータ
3行目:yの回転パラメータ
4行目:y方向の1ピクセル間距離
5行目:画像左上ピクセル中心のx座標
6行目:画像左上ピクセル中心のy座標

EPSG:3857(球面メルカトル≒ウェブメルカトル)でLeafletを使う場合、以下の関数で得られる値を使用して各値を計算する。

const latlng = L.latLng( 35, 135 );
const coords = L.Projection.SphericalMercator.project( latlng );

ワールドファイルでは空間座標系(EPSG)の指定がないので、実際に使用する際は空間座標系を指定する必要がある。

空間座標系ごとに計算方法があり、原点(画像左上)座標、ピクセル間距離はその計算で得られる値を使用する。現状ウェブ地図で回転を考える可能性が低いので気にしない(0で良い)。