QGISで日本の座標系はどれを選ぶ? — EPSGコードの決め方と、レイヤCRSとプロジェクトCRSを取り違えたときの症状

,

QGISで日本の座標系はどれを選ぶ? — EPSGコードの決め方と、レイヤCRSとプロジェクトCRSを取り違えたときの症状

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つ。

  1. 測地系(測地成果) — 旧日本測地系(Tokyo)か、JGD2000か、JGD2011か、JGD2024か
  2. 投影法・座標の形 — 緯度経度のままか、平面直角座標系の第何系か、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まで。この規則を覚えておくと、系番号さえ分かればコードが引けます。

平面直角座標系 全19系の区分地図

そのほか、日本のデータでよく出会うもの:

コード 内容 出会う場面
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 まで、座標がズレる理由と実務での扱いを1冊にまとめました(Kindle Unlimited 対応)


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

トップへ戻る