座標参照系(CRS)とは?EPSGコードとズレの直し方
公開日
座標参照系(CRS)とは、座標の組を地球上の実際の位置に結びつけるルールの集まりです。数値がどの地球モデルに基づくのか、単位が度かメートルか、丸い地球をどう平らな地図にしたのかを、ソフトウェアに伝えます。GISのレイヤにはすべてCRSがあり、たいていはEPSG:4326のような短いコードで表されます。
CRSがなければ、651000, 6862000はただの2つの数字です。EPSG:2154と組み合わせればパリの1点になります。間違えてEPSG:4326とみなすと、同じ数字はどこも指さず、QGISはレイヤを違う場所に描きます。「レイヤが海の上に出てしまう」という質問の大半は、このずれが原因です。この記事では直し方を順を追って示します。あわせて、私たちが作っているQGISプラグインAI Agentが、1通のメッセージから正しいCRSを52秒で突き止めたテストも紹介します。

座標参照系(CRS)を構成する3つの要素
CRSは3つの問いに答えます。どれか1つでも間違えると、データはずれます。
- 測地系(datum):どの地球か。 地球は完全な球ではなく、わずかに扁平です。測地系はその形のモデルを、実際の地球に合わせて固定したものです。GPSが使うWGS 84がその1つで、ヨーロッパのETRS89や北米のNAD83もあります。
- 座標系:度かメートルか。 地理座標系は緯度と経度を度で表します。投影座標系は平らな地図上のxとyをメートルで表します。
- 投影法:どう平らにしたか。 投影法は、丸い地球を平らな地図に変える方法です。何も引き伸ばさずに変えることはできないので、投影法ごとに面積、角度、距離のどれを正しく保つかを選びます。
地理座標系と投影座標系
どちらも正しい座標系です。違いは、測定値に意味があるかどうかに表れます。
| 地理座標系 | 投影座標系 | |
|---|---|---|
| 単位 | 緯度・経度の度 | メートルまたはフィート |
| 例 | EPSG:4326(WGS 84) | EPSG:32643(WGS 84 / UTM zone 43N、インド西部) |
| 向いている用途 | 世界規模のデータの保存と交換、GPSの位置 | 面積と距離の測定、設計、国の地図作成 |
| 向いていない用途 | 面積と長さ:経度1度は赤道で111km、極では0km | 投影法が想定する地域から遠い場所の面積 |
私のルールは、データは届いたCRSのまま保存し、測定は対象地域向けの投影座標系で行う、というものです。EPSG:4326で面積を計算すると、結果は平方度で返ってきます。それでも数字の見た目をしているので、そのまま納品されてしまいます。
EPSGコードとは
EPSGコードは、1つのCRSを正確に指す短い番号です。リストの始まりは European Petroleum Survey Group で、名前はそこに由来します。現在は国際石油・ガス生産者協会が管理しており、7,000以上のCRSが登録されています。
私がよく目にするコードは次のとおりです。
| コード | 名称 | 使われる場所と理由 |
|---|---|---|
EPSG:4326 | WGS 84 | GPS座標、GeoJSON、世界規模のデータセットの大半 |
EPSG:3857 | WGS 84 / Pseudo-Mercator | ウェブ地図のタイル:OpenStreetMap、Google、Bing、Esriのベースマップ |
EPSG:2154 | RGF93 / Lambert-93 | フランス本土の法定CRS |
EPSG:25832 | ETRS89 / UTM zone 32N | ドイツ、デンマーク、ノルウェー、中央ヨーロッパの大部分 |
EPSG:32643 | WGS 84 / UTM zone 43N | ムンバイやプネーを含むインド西部 |
EPSG:31983 | SIRGAS 2000 / UTM zone 23S | サンパウロ州を含むブラジル南東部 |
EPSG:26918 | NAD83 / UTM zone 18N | ニューヨークを含む米国東海岸 |
1行目には落とし穴があります。公式のEPSG:4326は緯度が先ですが、QGISを含むほとんどのソフトウェアとGeoJSONは経度を先に読みます(GeoToolsが理由を説明しています)。CSVの点が南極大陸やソマリア沖に落ちるときは、まず列の入れ替わりを疑ってください。
EPSG:4326とEPSG:3857の違い
EPSG:4326は位置を度で保存します。EPSG:3857はウェブメルカトルと呼ばれ、位置をメートル単位の正方形のグリッドに変換して、地図をタイルに切り分けられるようにしたものです。Google Mapsが2005年に採用し、ほぼすべてのオンラインベースマップが続きました。表示には優れていますが、赤道から離れるほど面積を大きく引き伸ばすので、測定には向きません。

どれくらい大きくなるのかを、6都市に置いた実際の1km²の正方形を使ってQGISで測りました。
| 都市 | 緯度 | ウェブメルカトル図上での1km²の面積 |
|---|---|---|
| キト | 南緯0.2° | 1.007km² |
| ムンバイ | 北緯19.1° | 1.126km² |
| マドリード | 北緯40.4° | 1.727km² |
| ベルリン | 北緯52.5° | 2.696km² |
| オスロ | 北緯59.9° | 3.966km² |
| トロムソ | 北緯69.7° | 8.226km² |
目安となる式1/cos²(緯度)は、すべての測定値と0.6%以内で一致します。赤道上でもウェブメルカトルは0.67%増えます。球体の式を、球ではない地球に使っているためです。
**測定方法:**2026年9月26日、QGIS 3.44で、各正方形を本来の大きさ(WGS 84楕円体上で1.000000km²、$areaで確認)に描きました。それをEPSG:3857に再投影し、平面上の面積をarea($geometry)で読み取りました。
つまり、オスロでウェブメルカトルのレイヤ上で測った農地の面積は、約4倍に膨らみます。測定は適切なCRSで行ってください。その国の公式CRSかUTMゾーンを使えば、面積は1%未満の誤差に収まります。
測地系:同じ座標なのに数メートルずれる理由
2つのCRSがどちらも「緯度40.7、経度−74.0」と言っていても、測地系が違えば、指す点は数メートル離れます。どれくらい離れるかは組み合わせ次第です。
| 変換元 | 変換先 | 典型的なずれ | 出典 |
|---|---|---|---|
| NAD27 | NAD83 | 米国本土48州で10〜100m、ハワイでは400m超 | USGS |
| NAD83 | WGS 84 | 米国の大部分で約1〜2m | North American Datum |
| ETRS89 | WGS 84 | 現在は約90cm、年2.5cmずつ拡大 | EuroGeographics / EUREF, 2025 |
意外なのはヨーロッパです。ETRS89はヨーロッパのプレートとともに動き、そのプレートは年約2.5cm移動しますが、WGS 84は動きません。そのため、1989年にETRS89で固定した点は、地上では何も動いていないのに、今ではWGS 84の位置から約90cm離れています。ベースマップ上では誰も気づきません。土地の測量では問題になります。
2つの測地系の間に変換方法が複数あるとき、QGISは選択を求めます。ダイアログを閉じずに、対象地域で最も精度の高いものを選んでください。
QGISでレイヤの位置が合わない理由
QGISはオンザフライで再投影します。各レイヤは自分のCRSを保持し、QGISが表示用にすべてをプロジェクトのCRSに変換します。これは、各レイヤのCRSが正しく宣言されている間は問題なく動きます。ラベルが間違っていると、QGISは間違った出発点から変換してしまいます。
これを確かめるため、ドイツ・バンベルク旧市街のOpenStreetMapの建物1,015棟をメートル単位(EPSG:25832)で保存し、度で表すWGS 84だと誤って記した.prjファイルを付けました。QGISはそのファイルを信じました。ウェブメルカトルのプロジェクトでは、レイヤにチェックは入っているのにどこにも描画されません。経度635,460度は地球上に存在しないからです。WGS 84のプロジェクトでレイヤの領域にズームを実行すると、何もないキャンバスに建物だけが孤立して現れます。

これはよくある問題で、初心者だけのものではありません。YouTubeのQGISチュートリアル1,692本のうち155本(9.2%)に、CRSやレイヤが重ならないことについてのコメントが付いています。GIS Stack Exchangeのcoordinate-systemタグには8,402件の質問があります。
そこで最も繰り返されている回答は、経験豊富なユーザーによるものです。「約99%のケースで、人々は再投影の代わりに『CRSを設定』を使っています。違いを知らないからです」。この2つのツールは正反対の働きをします。
- レイヤのCRSを設定は、ラベルを変え、数値はそのままにします。ラベルが間違っていた場合だけ使います。たとえば、シェープファイルの
.prjファイルがなくなったときです。 - ベクタレイヤを再投影は、場所を保ち、数値を変えます。ラベルが正しく、データを別のCRSにしたいときに使います。
すでに正しかったレイヤに「レイヤのCRSを設定」を使うと、レイヤは間違った場所に動きます。「再投影したら余計におかしくなった」というよくある失敗の正体です。
QGISでCRSの問題を直す方法
レイヤが主張している内容を読む
レイヤを右クリックし、**「プロパティ」→「情報」**を開きます。CRSの行に、QGISが座標をどう解釈しているかが表示されます。右下のステータスバーにはプロジェクトのCRSが表示されます。
生の数値を見る
「地物情報を表示」ツールで地物をクリックするか、点のCSVの属性テーブルを開きます。−180から180の値は度です。数十万から数百万の値は、投影座標系のメートルです。数値が宣言されたCRSと合わなければ、ラベルが間違っています。
ラベルを直すか、データを変換する
ラベルが間違っている場合:**「レイヤ」→「レイヤのCRSを設定」を開き、データが実際に作られたCRSを選びます。提供元の資料か、その国の標準CRSが手がかりになります。ラベルは正しいが別のCRSが必要な場合:「プロセシングツールボックス」→「ベクタレイヤを再投影」**を使います。
対象地域に合ったプロジェクトのCRSを設定する
測定の前に、ステータスバーのCRSボタンをクリックし、対象地域に合った投影座標系を選びます。
バンベルクのレイヤは、問題がラベルにあったので、**「レイヤのCRSを設定」**で直しました。フィルタに25832と入力し、ETRS89 / UTM zone 32Nを選びます。

座標は1つも変わっていません。ラベルが数値に合ったので、1,015棟の輪郭すべてが屋根の上に載りました。

AIエージェントに診断させる
私たちはQGISプラグインのAI Agentを作っているので、このセクションは自社ツールの話です。上の手作業の手順は無料で、慣れれば数分で済みます。難しいのは、データが実際にどのCRSで作られたのかを知ることなので、AIエージェントにそれを突き止められるかを試しました。
壊れたレイヤを読み込み直し、1通のメッセージを送りました。「建物レイヤがベースマップと重なりません。原因を調べて直してください」。エージェントは52秒で、.prjを読み、座標がメートルだと見抜き、市庁舎が航空写真のどこに載るかを確かめてEPSG:25832を選びました。同じ地域の古いヨーロッパのCRSは、建物が約225mずれるので除外しています。修正したコピーを保存し、元のファイルには触れませんでした。

非表示の一時レイヤが1つプロジェクトに残り、手動で削除する必要がありました。人間と同じで、答え合わせにはベースマップか参照レイヤが必要です。
どのCRSを使うべきか
| 目的 | 使うCRS | 理由 |
|---|---|---|
| ウェブのベースマップにデータを表示する | EPSG:3857 | タイルがこのCRSだから |
| 世界規模のデータを保存・交換する | EPSG:4326 | 汎用的で、GeoJSONが前提とするCRSだから |
| 国内の面積と長さを測る | その国のCRS、または地元のUTMゾーン | その地域向けに設計され、単位がメートルだから |
| 大陸をまたいで測る | 正積図法のCRS(ヨーロッパならEPSG:3035) | 広い範囲でも面積が正しく保たれるから |
| 官公庁のクライアントに納品する | 先方の法定CRS(フランスならEPSG:2154) | たいてい契約に書かれているから |
プロジェクトのCRSを変えるには、QGISウィンドウ右下のEPSGボタンをクリックします。**「プロジェクトのプロパティ」→「CRS」**が開き、コードや名前で検索できます。

この記事のまとめ
CRSは、測地系、座標系、そして平面の地図なら投影法を通じて、座標を地球上の位置に結びつけます。
EPSGコードは1つのCRSを正確に指します。EPSG:4326はGPSの緯度経度、EPSG:3857はオンラインベースマップのウェブメルカトルのグリッドです。
ウェブメルカトルは面積をおよそ1/cos²(緯度)倍に膨らませます。QGISでの実測では、1km²の正方形がマドリードで1.73km²、オスロで3.97km²、トロムソで8.23km²になりました。測定には、その国のCRSかUTMのCRSを使ってください。
レイヤが重ならないときは、何かを変更する前に生の数値を確認します。「レイヤのCRSを設定」は間違ったラベルを直し、「ベクタレイヤを再投影」は正しいデータを変換します。取り違えるとレイヤが動いてしまいます。
QGIS内のAIエージェントなら、診断を任せられます。私たちのテストでは、AI Agentが1通のメッセージから正しいCRSを特定し、レイヤのコピーを修正しました。
よくある質問
GISでCRSとは何ですか?
座標参照系は、レイヤの座標が地球上のどこにあるかをGISソフトウェアに伝えます。測地系(地球の形のモデル)、座標系(度かメートルか)、平面の地図なら投影法を組み合わせたもので、各レイヤに1つあり、たいていはEPSGコードで名前が付けられます。
EPSG:4326とEPSG:3857の違いは何ですか?
EPSG:4326は、WGS 84楕円体上の緯度と経度を度で保存します。EPSG:3857は、同じ位置をウェブ地図のタイル用に、メートル単位の正方形のグリッドへ投影します。3857はベースマップの表示に使い、測定には使わないでください。面積は緯度40°で1.7倍、60°で4倍に膨らみます。
WGS 84とEPSG:4326は同じですか?
日常的な使い方では同じです。厳密には、WGS 84は測地系で、EPSG:4326はその上に作られた緯度経度のCRSです。EPSG:3857など、WGS 84を使う別のCRSもあります。
QGISでレイヤが違う場所に表示されるのはなぜですか?
宣言されたCRSが、ファイル内の座標と合っていないためです。よくある原因は、.prjファイルがない、CSVの緯度と経度が入れ替わっている、「ベクタレイヤを再投影」が必要な場面で「レイヤのCRSを設定」を使った、の3つです。「地物情報を表示」ツールで生の座標を確認し、ラベルが間違っていた場合に限って「レイヤのCRSを設定」で直してください。
QGISの「CRSを設定」と「再投影」の違いは何ですか?
「レイヤのCRSを設定」はCRSのラベルを変え、座標の数値はそのままにします。元のラベルが間違っていた場合以外は、レイヤが動きます。「ベクタレイヤを再投影」はレイヤを同じ場所に保ち、数値を新しいCRSで計算し直します。前者はメタデータの修復に、後者はデータの変換に使います。
QGISは正しいCRSを自動で見つけられますか?
QGIS単体では見つけられません。QGISはシェープファイルの隣の.prjなど、ファイルからCRSを読み取り、なければ尋ねてきます。座標が合っているかまでは確認しません。AIエージェントのプラグインなら確認できます。私たちのAI Agentは、QGISで入力した1通のメッセージから、座標をベースマップと照らし合わせ、CRSを特定してレイヤのコピーを修正します。
面積の測定にはどのCRSを使えばよいですか?
対象地域向けに設計された投影座標系です。その国の公式CRS、または所在地のUTMゾーンを使います。大陸をまたぐ面積には、ヨーロッパならEPSG:3035のような正積図法のCRSを使います。面積をEPSG:4326(平方度)やEPSG:3857(赤道から離れるほど膨らむ)で測るのは避けてください。
CRSは、スキャンした地図のジオリファレンスの出発点でもあります。置いた点は、既知の座標系の中でしか意味を持たないからです。QGISとはではソフトウェア全体を、PyQGISではコードによる再投影の方法を紹介しています。AI Agentなら、QGISで入力した1通のメッセージでレイヤのCRSを直せます。ほかのAIプラグインはQGIS AIハブで用途別に一覧できます。
はレイヤを違う場所に描きます。「レイヤが海の上に出てしまう」という質問の大半は、このずれが原因です。この記事では直し方を順を追って示します。あわせて、私たちが作っているQGISプラグイン

