ベクタレイヤのズレについて

1,516 views
Skip to first unread message

itomo...@gmail.com

unread,
May 13, 2020, 6:29:41 AM5/13/20
to QGIS初心者質問グループ
お世話になります。
既出でしたらすみません。

・地理院タイルにベクタレイヤAを重ね、地物を追加
 ↓
・あとで河川情報も入れたいと思い、国土数値情報をダウンロードし、shpファイルを読み込む(ベクタレイヤB)
 ↓
・ベクタレイヤBが表示されない(CRSは全てWGS84 EPSG:4326にそろえてある)
 ↓
・ベクタレイヤBについて、「レイヤの領域にズーム」をすると、全く別の場所に表示されている


上手く説明できませんが、この原因が分かる方おられましたらご教示いただけませんか?QGISはver. 3.12.2.を使用しています。

sakuya_izayoi

unread,
May 13, 2020, 11:37:21 PM5/13/20
to QGIS初心者質問グループ
こちらizayoiです。
国土数値情報の河川レイヤと言いますと
からダウンロードしたものでしょうか?

当該レイヤはJGD2000で作られているようなので、CRSは4612となります。

ここで質問です。
全く別の場所というのは
数m程度のずれではなく、はるか彼方(アフリカのほうであったり、地理院タイルが表示できない部分にあったり)
でしょうか?
下記は地理院シームレス写真に、河川レイヤを重ねたものです。

WGS84とJGD2000ではあまり位置は変わらないため、そこまでずれてしまうという事は地震の影響を受けた東北地方以外ではあんまり経験ありません。

もしかしたら、河川レイヤのレイヤBに対して、CRSを3857(WGS84 p-mercator)にしてませんでしょうか?

itomoki

unread,
May 14, 2020, 4:00:18 AM5/14/20
to QGIS初心者質問グループ
ご教示ありがとうございます。

ご提示いただいたサイトからダウンロードしたものです。
JGD2000は見落としておりました。

改めて、新規データ上でレイヤBを読み込み(これは表示される)、エクスポートでEPSG:4326 (WGS 84)のshpファイル(レイヤC)に出力。
 ↓
前回の地理院タイル+ベクタレイヤAのデータ上でレイヤCを読み込み

としましたが、やはり状況は変わりませんでした…

ズレは非常に大きいようで、地理院タイルが表示できない場所にあるようです。
3857は使用しておりませんでした。

もしかしたらレイヤAに問題があるかも、と思って探しておりますが、何か他に思い当たることがございましたら、教えていただけますと幸いです。

キタ

unread,
May 14, 2020, 4:19:18 AM5/14/20
to QGIS初心者質問グループ
ダウンロードしたレイヤBを地理院タイルと重ねたら、きちんと重なりませんか?
わざわざレイヤCにエクスポートする必要はないと思います。

レイヤBを地理院タイルに重ねて重ならない場合は、レイヤプロパティのソースで、座標参照系の設定でJGD2000(EPSG4612)を選択してください。

キタ

itomo...@gmail.com

unread,
May 14, 2020, 8:22:39 AM5/14/20
to QGIS初心者質問グループ
ご教示ありがとうございます。

アドバイスの通りにしてみましたが、今度はレイヤBはうまく重なるものの、レイヤAが遠いところに行ってしまうことになりました。

試しにレイヤAと地理院タイルをEPSG:3857、レイヤBをEPSG:4326にすると見かけ上は上手く載りました。
ただ、(初心者なのでご容赦願いたいのですが)これだと厳密にはズレていることになるのでしょうか?
若干、地理院タイルも横に伸びているような気がします…

キタ

unread,
May 14, 2020, 9:42:39 AM5/14/20
to QGIS初心者質問グループ
>試しにレイヤAと地理院タイルをEPSG:3857、レイヤBをEPSG:4326にすると見かけ上は上手く載りました。
それであっているのではないでしょうか。
地理院地図が横長になっているのは地図の座標参照系が4326になっているからでしょう。
地図の座標参照系は、QGISの右下にEPSG番号が表示されています。
この番号をクリックして、3857にすると、メルカトル図法の表示に戻ります。

理解していただきたいのは、レイヤの座標参照系は、作成したときに決まっているということです。
シェープファイルの場合は、prjファイルに座標参照系が記録されています。
国土数値情報の河川のシェープファイルには残念ながらprjファイルがないので、作られたときの座標参照系を自分で指定する必要があります。
これが間違っていると、おかしな場所に表示されます。
今回の国土数値情報の河川は「JGD2000(EPSG:4612)」でしたね。
レイヤAは、なにか書かれていませんが、地理院タイルに重ねて地物を追加したと書かれているので、多分EPSG:3857で作られたのだろうと思います。
レイヤの座標参照系は、レイヤプロパティのソースの「座標参照系の設定」で確認、設定できます。

Image 6.jpg



QGISは、さまざまな座標参照系のレイヤを、自動的に位置が修正されて同じ地図上に表示することができます。
レイヤの座標参照系はバラバラなので、現在表示している地図の座標参照系を一つに指定しないと、マウスカーソルがある位置の座標がわかりません。
それは、現在作っている地図の距離や面積の計算にも影響します。

QGISの場合、デフォルトでは新規から一番初めに地図に追加したレイヤの座標参照系が、その地図の座標参照系に指定されます。
最後の質問の「横に伸びている」というのは、一番はじめにレイヤBを追加したことで、地図の座標系が4326に自動的に指定されたためだと思います。

レイヤと地図の座標参照系は別々のものだということを理解してください。

地理院タイルをXYZ Tilesでレイヤに追加している場合は、自動的にレイヤの座標参照系は3857に設定され、正しい位置に表示されるはずです。
このように正しい位置に表示されるレイヤを一つ以上持っておくことで、新しく使用するレイヤの座標参照系が正しいか確認できます。
地理院タイルと位置があっていれば正しいということです。

基本的に座標参照系を指定しなければならないのは、シェープファイルです。前述したprjファイルが無いと、座標参照系がわからないからです。
シェープファイル以外は、レイヤのファイルに座標参照系が記録されているので、特に指定する必要はありません。QGISが自動的に判断してくれます。
prjファイルがないシェープファイルの場合、正しい座標参照系を「定義」しておくと、次回使うときにいちいち座標参照系を指定しなくてもいいので楽になります。
座標参照系の定義は、プロセッシングツールで行うことができます。
プロセッシングツールボックス→ベクタ一般→シェープファイルの投影法の定義
を実行して、正しい座標参照系を指定して「定義」するとprjファイルが作成されます。

長くなりましたが、座標参照系について説明させていただきました。

キタ

ありた

unread,
May 14, 2020, 9:43:21 AM5/14/20
to QGIS初心者質問グループ
こんにちは

たとえば x=135, y=35 の座標に点があったとして、それが東経135度、北緯35度を意図して
作成された点なのか、あるいはどこかを原点として東に135m、北に35m行った場所なのか
データを作成した人でないとわかりません。
そして、不適切な座標系で読み取ろうとすると、データは意図しない場所に示されます。

つまり、データ(座標値)を作成したときの前提となる座標系と、データ(座標値)を
読み取るときの座標系が一致すれば意図どおりですし、違えば(多くの場合)異なります。



地理院タイル(正確には XYZ Tiles の形式を利用した大部分のタイル地図)は真球メルカトル
(EPSG:3857)前提として作成されています。
国土数値情報の河川データは JGD2000 / (B, L) とありますから日本測地系2000の
経緯度座標系(EPSG:4612)となります。



ここで「レイヤA」ですが、オープンデータ等の既存データなのでしょうか。そうでしたら、
そのデータの作成機関による作成時座標系が、正しい座標系です。
新たに作成したレイヤであれば、作成時に設定した座標系が正しい座標系です。

ただし、地物の追加段階で正しい位置と判断した基準が、不適切な座標系で設定されていた
場合など、基準の方が正しくない位置であれば、当然追加された地物はおかしな場所に
作成されていると思われます。



また、「地理院タイルも横に伸びている」とのことですが、どのような座標系でデータを
読み取るかということと、その結果すべてのレイヤをどのように GIS 上で表示するか
(投影するか)というのは別問題です。
QGIS の右下のステータスバーに表示されているものが、プロジェクト CRS と呼ばれる、
どのように表示するかの設定です。正しく座標値を読み取ったあとであれば、
横長でも楕円でも(目的に応じて)好きに設定を行うことができます。

WGS84(EPSG:4326)、JGD2000(EPSG:4612)などの経緯度座標系(≒正距円筒図法)は
高緯度ほど横長に表示されますが、それは正しい投影結果です。



なお、更に厳密に一致するかという話になると、基準楕円体や測地系、元期などの差であったり、
作成されたデータの精度レベルの話になってきますので、割愛します。

itomo...@gmail.com

unread,
May 14, 2020, 9:53:08 AM5/14/20
to QGIS初心者質問グループ
キタ様

再度のご教示ありがとうございます。
大変丁寧にご説明いただきとても勉強になりました。
今後もぜひ参考にさせていただきます。

itomo...@gmail.com

unread,
May 14, 2020, 9:54:56 AM5/14/20
to QGIS初心者質問グループ
アリタ様

丁寧な解説ありがとうございました。
自分の座標系の理解が不十分だったと分かりました。
今後もぜひ参考にさせていただきます。

Reply all
Reply to author
Forward
0 new messages