
QGISで日本の座標系はどれを選ぶ? — EPSGコードの決め方と、レイヤCRSとプロジェクトCRSを取り違えたときの症状
選ぶのは番号1つです。
読み込んだデータが日本のどこか遠い場所に飛んだ、あるいは形は合っているのに全体が数百メートルずれている。座標参照系(CRS)を設定し直すとき、リストから選ぶのはEPSGコードという番号1つだけです。では、その1つで何を決めているのでしょうか。
決めているのは「測地系」と「投影法」の2つで、片方だけ合っていても位置は合いません。緯度経度で持つならJGD2011はEPSG:6668、平面直角座標なら第I〜XIX系がEPSG:6669〜6687です。しかもQGISには設定が2か所あり、そのうち片方は変換ではなく宣言です。 事故のほとんどはここで起きています。
まず、EPSGコードは2つの情報を運んでいる
EPSGコードは「座標参照系(CRS)」の背番号です。日本のデータで問題になるのは、そこに入っている次の2つ。
- 測地系(測地成果) — 旧日本測地系(Tokyo)か、JGD2000か、JGD2011か、JGD2024か
- 投影法・座標の形 — 緯度経度のままか、平面直角座標系の第何系か、Webメルカトルか
この2つは独立です。「緯度経度だからWGS84」ではありませんし、「平面直角座標だからJGD2011」でもありません。組み合わせの数だけコードがある、という理解が出発点になります。
日本のデータで使うEPSGコード
| 座標の形 | 旧日本測地系(Tokyo) | JGD2000 | JGD2011 |
|---|---|---|---|
| 緯度経度(地理座標系) | EPSG:4301 | EPSG:4612 | EPSG:6668 |
| 平面直角座標系 第I〜XIX系 | EPSG:30161〜30179 | EPSG:2443〜2461 | EPSG:6669〜6687 |
平面直角座標系のコードは系番号の順に連番です。JGD2011なら第I系=6669、第II系=6670……第XIX系=6687。JGD2000なら第I系=2443から2461まで。この規則を覚えておくと、系番号さえ分かればコードが引けます。

そのほか、日本のデータでよく出会うもの:
| コード | 内容 | 出会う場面 |
|---|---|---|
| EPSG:4326 | WGS84 の緯度経度 | GPX・KML・GeoJSON、スマートフォンの測位結果 |
| EPSG:3857 | Webメルカトル | 背景地図タイル(地理院タイル・OSM など) |
| EPSG:6697 | JGD2011 の緯度経度+標高(複合CRS) | 基盤地図情報、PLATEAU の CityGML |
JGD2024については、EPSGへの登録状況と「定義は変わらず名称をそろえた」という位置づけを別記事にまとめてあります。お使いのQGIS/PROJのバージョンによって選べるかどうかが変わるため、まずは手元の検索窓で確認してください。
レイヤCRSとプロジェクトCRSは別のもの
QGIS 3系では、次の2つの設定が独立に存在します。
- レイヤCRS — そのレイヤに入っている座標値が、何のCRSで書かれているかの宣言
- プロジェクトCRS — キャンバスに描くときに、どのCRSへそろえて表示するかの指定
QGISは常にオンザフライ再投影を行うので、レイヤCRSさえ正しく宣言されていれば、プロジェクトCRSが何であっても位置は合います。逆に言えば、レイヤCRSの宣言が間違っていると、QGISは何も疑わずに「間違った前提で」再投影します。
ここがいちばん大事な点です。レイヤCRSは「変換の指示」ではなく「宣言」です。 変えても座標値そのものは1ミリも動きません。動くのは「この数字を何と読むか」だけです。
| やりたいこと | 使うもの |
|---|---|
| 宣言が間違っていたので直したい(座標値は正しい) | レイヤプロパティ → ソース → CRSを設定 |
| 座標値そのものを別のCRSへ変換して保存したい | 右クリック → エクスポート → 新規ファイルに保存(CRSを指定) |
「CRSを設定」しても座標値が変わらないのは、バグなのか
ここは実際によく引っかかる場所なので、独立して書いておきます。バグではありません。仕様どおりです。
レイヤプロパティでCRSを設定しても、属性テーブルに並んでいる座標値は1つも変わりません。変わるのは「この数字を何と読むか」だけだからです。地図の見た目が動いたように見えるのは、読み替えた結果をQGISが再投影して描き直しているためで、ファイルの中身には手が入っていません。
だから次の2つは、まったく別の操作です。
- 宣言を直す(CRSを設定)— 元データのCRS情報が欠けていた・間違っていたときに使う
- 値を変換する(エクスポート)— 別のCRSの数値としてファイルを作り直したいときに使う
「CRSを設定」でファイルが変換されると思い込んでいると、宣言だけ書き換わったズレたデータが量産されます。他人に渡す前に、必要だったのはどちらだったかを一度確認してください。
症状から原因を切り分ける
QGISで位置がおかしいとき、ズレ方を見れば原因はだいたい絞れます。
| 症状 | 疑うところ |
|---|---|
| データがアフリカ沖・緯度経度0付近に飛ぶ | 平面直角座標(メートル単位)のデータを、緯度経度のCRSと宣言している |
| 日本のどこかではあるが、数百km単位で違う場所 | 平面直角座標の系番号違い(第9系のデータを第6系と宣言など) |
| 形は正しいが全体が数百メートル平行移動している | 旧日本測地系(Tokyo)のデータをJGD系と宣言している、またはその逆 |
| 数十cm〜数mだけずれる | JGD2000とJGD2011の混在(地震による地殻変動ぶん) |
| 南北が逆・東西が入れ替わる | 緯度経度の軸順、または平面直角座標のX(北)・Y(東)の取り違え |
平行移動に見える数百メートルのズレは、旧日本測地系と世界測地系の差です。この量は場所によって違い、全国分布は旧日本測地系の図面変換の記事にまとめてあります。

軸順とXY取り違えについては、緯度経度の軸順の落とし穴と平面直角座標のXY取り違えにそれぞれ整理しています。
Tokyo→JGDの変換で、QGISが黙ってズレるとき
CRSの宣言が正しくても、変換の中身でもう一段はまることがあります。
QGISの座標変換は内部でPROJが担当しています。旧日本測地系から世界測地系への高精度な変換には、国土地理院のTKY2JGDに相当するグリッド(格子状の補正量ファイル)が必要です。グリッドが入っていれば局所的な歪みまで含めて変換できますが、入っていない場合、PROJはエラーを出さずに3/7パラメータのヘルマート変換へ静かにフォールバックします。
返ってくるのは「それらしい値」なので、画面を見ているだけでは気づけません。QGISは変換経路を選ぶダイアログで精度の目安を表示するので、Tokyo系のデータを扱うときは、そこに出ている経路と精度を必ず確認してください。
同じ理由で、JGD2000とJGD2011のあいだも要注意です。両者は同じGRS80楕円体なので、PatchJGD相当のグリッドが無いとPROJはシフト量ゼロ=何も変換しないという結果を返します。地震による地殻変動が丸ごと無視されるわけです。
この挙動の詳細と、日本特化エンジン側でどう埋めているかはPROJで足りること・足りないことに書きました。
ファイル形式ごとに、CRSがどこに書いてあるか
そもそも「レイヤCRSが正しく読まれるか」は、ファイル形式に依存します。
| 形式 | CRSの持ち方 |
|---|---|
| Shapefile | 同名の .prj にWKTで書かれる。.prj が無ければQGISは判断できない |
| GeoPackage(.gpkg) | データベース内のテーブルにCRS定義を保持する |
| GeoTIFF | タグ(GeoKey)に埋め込まれる |
| GeoJSON・KML・GPX | 仕様上WGS84固定。ファイルにCRS指定は書かない |
| CSV・SIMA・DXF | 座標系の情報を持たない。人間が知っているものとして扱われる |
最後の行が実務でいちばん厄介です。CSVやDXFを読み込むときは、QGISが何かを推測してくれることはありません。渡した人に「何測地系の何系か」を聞くしかない——これが原則です。
聞ける相手がいないときは、既知の点との差を見て測地系を推定する手があります。手順はこの座標、測地系はどれ?にまとめてあります。
まとめ
- EPSGコードは「測地系」と「投影法」の2つを同時に指定している。片方だけ合っていても位置は合わない
- 平面直角座標系のコードは系番号順の連番。JGD2011=6669〜6687/JGD2000=2443〜2461/Tokyo=30161〜30179
- レイヤCRSは宣言、エクスポートが変換。 「CRSを設定」しても座標値は動かない
- ズレ方で原因は絞れる。数百メートルの平行移動なら測地系、数百kmなら系番号、地球の裏側なら単位
- Tokyo系やJGD2000混在を扱うときは、変換グリッドが入っているかを必ず確認する。無くてもエラーにはならない
QGIS上で確かめた測地系の判断が正しいかどうかは、単点で突き合わせるのがいちばん早い方法です。GeoConverter Pro は旧日本測地系・JGD2000/2011/2024と平面直角19系の相互変換を、グリッドを内蔵した状態でオフラインで行えます。1点だけ入れて、QGISの結果と数値が一致するかを見てください。
https://apps.apple.com/jp/app/geoconverter-pro/id6761740960
EPSGコードの対応状況は、お使いのQGIS/PROJのバージョンとEPSG Datasetの版によって異なります。本記事の記述は2026年8月時点のものです。実際のコードは必ず手元の環境の検索窓で確認してください。
出典
- EPSG Geodetic Parameter Dataset(epsg.io) https://epsg.io/
- JGD2011 + JGD2011 (vertical) height — EPSG:6697 https://epsg.io/6697
- QGIS ドキュメント「Working with Projections」 https://docs.qgis.org/latest/en/docs/user_manual/working_with_projections/working_with_projections.html
- PROJ ドキュメント「Grid transformations」 https://proj.org/en/stable/usage/transformation.html
- 国土地理院「TKY2JGD」 https://www.gsi.go.jp/sokuchikijun/tky2jgd.html
次に確認する
- JGD2024のEPSG登録と19系の対応を確認する — 本記事の表に続く、いちばん新しい測地系の扱いです
- Shapefileの.prjに書かれたWKTの読み方を確認する — CRSの宣言が「どんな文字列で」書かれているかが分かります
- PROJが黙ってズレる条件を確認する — グリッドが無いときのフォールバックを詳しく扱った回です
- 自分の県が第何系かを1分で確認する — EPSGコードを引く前に必要な系番号の早見表です
- 平面直角座標系がなぜ19系に分かれているのかを図で確認する(GeoPrism JP) — 系番号の意味を一般向けに図解した回です
- 書籍でまとめて学ぶ: 『日本の測地系Q&A』第13章「座標データの落とし穴」(Kindle Unlimited対応)
入門から通しで読むなら: 『日本の測地系がわかる本』 — 旧日本測地系から JGD2024 まで、座標がズレる理由と実務での扱いを1冊にまとめました(Kindle Unlimited 対応)
開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。
お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。
コメントを残す