コンテンツへスキップ
QGIS
ガイド

座標参照系(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枚のカード。1つ目は「どの地球か」で、測地系と楕円体(WGS 84、ETRS89、NAD83、SIRGAS 2000など)。2つ目は「角度かメートルか」で、座標系。3つ目は「どう平らにしたか」で、平面グリッドにだけ必要な投影法。イコール記号の先に緑色のカードがあり、ラベルはEPSGコード。度で表すWGS 84のEPSG:4326、メートルで表すウェブメルカトルのEPSG:3857、フランスのランベルト93のEPSG:2154が例として挙がっている。その下に、地理座標系は1と2を使い座標は48.85、2.35のようになること、投影座標系は3つすべてを使い座標は652 000、6 862 000のようになることが示されている。
測地系、座標系、そして平面の地図なら投影法。この組み合わせにEPSGコードが名前を付けます。

座標参照系(CRS)を構成する3つの要素

CRSは3つの問いに答えます。どれか1つでも間違えると、データはずれます。

  1. 測地系(datum):どの地球か。 地球は完全な球ではなく、わずかに扁平です。測地系はその形のモデルを、実際の地球に合わせて固定したものです。GPSが使うWGS 84がその1つで、ヨーロッパのETRS89や北米のNAD83もあります。
  2. 座標系:度かメートルか。 地理座標系は緯度と経度を度で表します。投影座標系は平らな地図上のxとyをメートルで表します。
  3. 投影法:どう平らにしたか。 投影法は、丸い地球を平らな地図に変える方法です。何も引き伸ばさずに変えることはできないので、投影法ごとに面積、角度、距離のどれを正しく保つかを選びます。

地理座標系と投影座標系

どちらも正しい座標系です。違いは、測定値に意味があるかどうかに表れます。

地理座標系投影座標系
単位緯度・経度の度メートルまたはフィート
例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:4326WGS 84GPS座標、GeoJSON、世界規模のデータセットの大半
EPSG:3857WGS 84 / Pseudo-Mercatorウェブ地図のタイル:OpenStreetMap、Google、Bing、Esriのベースマップ
EPSG:2154RGF93 / Lambert-93フランス本土の法定CRS
EPSG:25832ETRS89 / UTM zone 32Nドイツ、デンマーク、ノルウェー、中央ヨーロッパの大部分
EPSG:32643WGS 84 / UTM zone 43Nムンバイやプネーを含むインド西部
EPSG:31983SIRGAS 2000 / UTM zone 23Sサンパウロ州を含むブラジル南東部
EPSG:26918NAD83 / UTM zone 18Nニューヨークを含む米国東海岸

1行目には落とし穴があります。公式のEPSG:4326は緯度が先ですが、QGISを含むほとんどのソフトウェアとGeoJSONは経度を先に読みます(GeoToolsが理由を説明しています)。CSVの点が南極大陸やソマリア沖に落ちるときは、まず列の入れ替わりを疑ってください。

EPSG:4326とEPSG:3857の違い

EPSG:4326は位置を度で保存します。EPSG:3857はウェブメルカトルと呼ばれ、位置をメートル単位の正方形のグリッドに変換して、地図をタイルに切り分けられるようにしたものです。Google Mapsが2005年に採用し、ほぼすべてのオンラインベースマップが続きました。表示には優れていますが、赤道から離れるほど面積を大きく引き伸ばすので、測定には向きません。

ウェブメルカトルの世界地図に、地上ではどれも500km×500kmのオレンジ色の正方形が6つ描かれている。赤道上のキトの正方形は小さく、×1.01と表示されている。ムンバイは×1.13、マドリードは×1.73、ベルリンは×2.70、オスロは×3.97で、北極圏の北にあるトロムソの正方形は約8倍の大きさに描かれ、×8.23と表示されている。
地上の面積が同じ6つの正方形を、QGISでEPSG:3857に描いたもの。ラベルは実測した面積の拡大率です。

どれくらい大きくなるのかを、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」と言っていても、測地系が違えば、指す点は数メートル離れます。どれくらい離れるかは組み合わせ次第です。

変換元変換先典型的なずれ出典
NAD27NAD83米国本土48州で10〜100m、ハワイでは400m超USGS
NAD83WGS 84米国の大部分で約1〜2mNorth American Datum
ETRS89WGS 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のプロジェクトでレイヤの領域にズームを実行すると、何もないキャンバスに建物だけが孤立して現れます。

QGISの画面を左右に並べた図。左はウェブメルカトルのプロジェクトで、バンベルクの航空写真の上に黄色の建物の輪郭が重なっている。レイヤパネルには、WGS 84と宣言された赤いコピーがあり、チェックは入っているがどこにも描画されていない。右は、WGS 84のプロジェクトで「レイヤの領域にズーム」を実行した後の、同じ赤い建物だけが白いキャンバスにある画面で、x 635,460、y 5,528,260が度として読まれ、ベースマップはない。
同じ建物の、正しい表示と間違った表示。メートルを度と宣言すると、建物は地図の外へ消えます。

これはよくある問題で、初心者だけのものではありません。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を選びます。

フィルタに25832を入力したQGISのCRS設定ダイアログ。「投影座標系」の「ユニバーサル横メルカトル」の下で、ETRS89 / UTM zone 32N、EPSG:25832が選択されている。詳細ペインには単位がメートルであることとETRS89測地系が表示され、小さな世界地図では中央ヨーロッパを横切るUTM zone 32Nの帯が強調されている。
EPSGコードで絞り込んだ「レイヤのCRSを設定」。ラベルだけを変え、座標はそのままです。

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

レイヤのCRSをEPSG:25832に設定した後のバンベルク旧市街のQGIS地図。赤い建物の輪郭が航空写真の屋根にぴったり重なっている。
CRSを設定した後:輪郭が航空写真と重なります。

AIエージェントに診断させる

私たちはQGISプラグインのAI Agentを作っているので、このセクションは自社ツールの話です。上の手作業の手順は無料で、慣れれば数分で済みます。難しいのは、データが実際にどのCRSで作られたのかを知ることなので、AIエージェントにそれを突き止められるかを試しました。

壊れたレイヤを読み込み直し、1通のメッセージを送りました。「建物レイヤがベースマップと重なりません。原因を調べて直してください」。エージェントは52秒で、.prjを読み、座標がメートルだと見抜き、市庁舎が航空写真のどこに載るかを確かめてEPSG:25832を選びました。同じ地域の古いヨーロッパのCRSは、建物が約225mずれるので除外しています。修正したコピーを保存し、元のファイルには触れませんでした。

右側にAI AgentパネルをドッキングしたQGIS。地図には、航空写真にぴったり重なったバンベルクの建物が表示されている。エージェントの回答は、Buildingsシェープファイルの宣言はEPSG:4326だが座標はEPSG:25832であること、ジオメトリを動かさずにコピーへ正しいCRSを割り当てたこと、1,015棟の輪郭がすべてオルソ画像に重なったこと、元のファイルは変更されず非表示になっていることを伝えている。その下には、保存されたGeoPackage、追加または非表示にしたレイヤ、ソース1件、アクション11件、元に戻すボタンが表示されている。
1通のメッセージで52秒:エージェントが正しいCRSを特定し、コピーを修正します。

非表示の一時レイヤが1つプロジェクトに残り、手動で削除する必要がありました。人間と同じで、答え合わせにはベースマップか参照レイヤが必要です。

QGISでAI Agentを無料で試す(カード不要)

どのCRSを使うべきか

目的使うCRS理由
ウェブのベースマップにデータを表示するEPSG:3857タイルがこのCRSだから
世界規模のデータを保存・交換するEPSG:4326汎用的で、GeoJSONが前提とするCRSだから
国内の面積と長さを測るその国のCRS、または地元のUTMゾーンその地域向けに設計され、単位がメートルだから
大陸をまたいで測る正積図法のCRS(ヨーロッパならEPSG:3035)広い範囲でも面積が正しく保たれるから
官公庁のクライアントに納品する先方の法定CRS(フランスならEPSG:2154)たいてい契約に書かれているから

プロジェクトのCRSを変えるには、QGISウィンドウ右下のEPSGボタンをクリックします。**「プロジェクトのプロパティ」→「CRS」**が開き、コードや名前で検索できます。

EPSG:3857ボタンが強調表示されたQGISのステータスバーと、その上に開いた「プロジェクトのプロパティ」ウィンドウのCRSタブ。「最近使った座標参照系」にEPSG:25832、4326、3857、2056が並び、WGS 84 / Pseudo-Mercatorが選択されていて、単位はメートル、その適用範囲を示す世界地図が表示されている。
ステータスバーのプロジェクトCRSボタンから「プロジェクトのプロパティ」→「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ハブで用途別に一覧できます。