国土地理院のベクトルタイルで、QGIS上に詳細に道路を表示する方法

3,367 views
Skip to first unread message

Keisuke Nishikori

unread,
Mar 30, 2020, 4:51:18 AM3/30/20
to QGIS初心者質問グループ

はじめまして。Nishikoriといいます。

地理院地図Vector(仮称)を利用して、国道と県道の道路中心線をQGIS上で表示し、
市町村界などで道路中心線を引き抜きたいと考えています。
ですが、どうしても国道のみの表示しかできません。
どのようにしたら、県道(あるいは市町村道のような、もっと細い(?)道)が表示できるのでしょうか。

方法を色々調べていまして、

https://qiita.com/Kanahiro/items/767782595299e4e83d8f

を参考に手を動かしていたのですが…。

tiles.jsonの設定をうまくすればなんとかなるのか、(maxzoomやminzoomをあれこれいじってみていますが…)
それとも仕様上不可能なのか、私には判断が付きませんでした。

QGISのバージョンは3.10.1、VectorTilesReaderは最新のものをインストールしています。
もしわかる方がいらっしゃいましたら、お願いいたします。

どんなコメントでも歓迎です!

ありた

unread,
Apr 1, 2020, 7:08:43 AM4/1/20
to QGIS初心者質問グループ
こんにちは

VectorTilesReader で試すことはできていませんが、地理院のバイナリベクトルタイルに
ついて別の方法でデータについて確認してみました。
当然ですが、データ自体はちゃんと入っています。

ただしズームレベルによって含まれているデータ量は異なります。
以下は、ズームレベル12から16までの道路データを抜き出して表示させたものです。

pbf_test.png


tiles.json をどのように記述したのかわかりませんが、大きなズームレベルのデータが
読み込まれていない可能性はあります。


地理院のバイナリベクトルタイル提供実験におけるデータ仕様等は下記参照

ありた

unread,
Apr 1, 2020, 7:40:59 AM4/1/20
to QGIS初心者質問グループ
すみません。クレジット表記が間違えてました。

単色地図 → 淡色地図
また、国土地理院ベクトルタイル提供実験のデータを使用しています。


ちなみに前述のバイナリベクトルタイルから道路データを抜き出すのに使用したのは
Mapbox 社から提供されている Python のライブラリです。

Keisuke Nishikori

unread,
Apr 2, 2020, 10:05:04 PM4/2/20
to QGIS初心者質問グループ
ありたさん、ご回答ありがとうございます!

VectorTilesReader 以外でも対応できる、ということは分かりましたが、
私はQGISの初心者で、QGIS上でどのような手順を踏まれたのか、ちょっと想像がつきませんでした。

で、ご回答の中の単語で、日本語と英語であれこれ検索してみたのですが、
何をどうされたのか(どうすればいいのか)、分かりませんでした。
(「mapbox pythonライブラリ 使い方」等…)

もしよければ、どのような手順を踏まれたか、ということもご教授いただければと思います。

よろしくお願いいたします。

ありた

unread,
Apr 3, 2020, 8:40:44 AM4/3/20
to QGIS初心者質問グループ
こんにちは

あのあと確認してみましたが、 Mapbox Vector Tiles 形式は GDAL/OGR 2.3 で対応しております。
QGIS は内部で GDAL/OGR を使用しているため、 QGIS でも MVT 形式を開くことはできます。
シームレスに自動的に読み込むことはできませんが、あらかじめファイルをダウンロードしておいて、
ダウンロードしたファイルを QGIS で開くことは可能です。

国土地理院のバイナリベクトルタイルは以下の URL 形式ですので、
たとえばタイル座標が 14/14567/6427 のタイルであれば以下のアドレスよりファイルを
ダウンロードすることができます。

タイル座標は地理院地図の「設定→グリッド表示→タイル座標」で確認できます。


ダウンロードしたファイルの名称を z_x_y.pbf に変更します。
QGIS の「ベクタレイヤの追加」もしくは、単にファイルをドロップすることで、読込み表示することができます。
(タイルデータの中にタイル位置情報が入っていないみたい(?)ですが、ファイル名称を
 変更することで、正しい位置に読み込むことができます。)




先日の投稿で紹介した mapbox の vector-tile-base ですが、 Python (プログラム言語)で直接中身を読み、
それを別の形式に変換する方法ですので、私は興味から使ってみましたが、正直なところ、
初めの一歩としてはおすすめしません。
それでも興味がおありでしたら、↓にサンプルなどが載っていますので参考にしてください。

Keisuke Nishikori

unread,
Apr 4, 2020, 11:12:39 PM4/4/20
to QGIS初心者質問グループ
ありたさん、詳しいご回答ありがとうございました!
おかげさまで、手順通りにやってみたらできました。

pythonは使ったことがなく、サンプルも目を通してみましたが、
正直なにをやっているかわからず…
今は保留しておくこととします。
Message has been deleted

Keisuke Nishikori

unread,
Apr 6, 2020, 8:41:19 AM4/6/20
to QGIS初心者質問グループ
あたらしく質問を立てたほうが良いかと思いましたが、追加でわからない点が出てきました。

ありたさんに教えていただいた方法で、ベクタタイルからデータを抜き出すことができたのですが、
CRSの設定がうまく行かず、その他のデータとうまく重なりません。

プロジェクトとその他のレイヤのCRSはJGD2011の平面直角座標系III系で統一してあるのですが、
ベクタタイルから抜き出したデータについては、CRSをWGS 84 Pseudo-Mercator にすると表示範囲にはなくなり、
JGD2011の平面直角座標系III系でやってみると、かなりズレたところに表示されます。(後で画像も添付します…)

QGISのバージョンは3.10.1です。
他にも追加したほうがいい情報があるでしょうか。

どなたかおわかりになる方がいましたら、どうぞご教授のほど、お願いいたします。
(別アカウントから投稿してしまったので再投稿しました。すみません。)

ありた

unread,
Apr 7, 2020, 9:54:46 AM4/7/20
to QGIS初心者質問グループ
こんにちは

行った操作を教えてください。
「抜き出した」とは何を行ったのですか? pbf ファイルを読み込み QGIS に単独で
表示させたのか。あるいは別形式のファイルにエクスポートを行ったのか。
エクスポートを行った場合、元の pbf ファイルの CRS は何で、エクスポート時の出力の
CRS は何を指定したのか。

また、意図しない範囲に表示されてしまうレイヤのプロパティを開いて、「情報」タブの
「領域」の値を教えてください。

kn.cosm...@gmail.com

unread,
Apr 10, 2020, 4:46:36 AM4/10/20
to QGIS初心者質問グループ
ありたさん
お返事が遅れ、また説明不足でした。すみません。

まず教えていただいた手順通りに、pbfファイルを読み込みました。エクスポートは行っていません。

読み込んだのは添付した画像の、9/444/202のタイルの道路中心線のベクタです。

プロジェクトCRSは、JGD2011平面直角座標系3系です。
pbfで表示させた道路中心線のレイヤのCRSを、WGS 84 Pseudo-Mercatorとしました。
この設定ですと、島根県周辺には道路が表示されません。
情報を見ますと、「プロバイダからの情報」では、

領域 0.0000000000000000,0.0000000000000000 : 4096.0000000000000000,4096.0000000000000000

でした。

「領域」は
Spatial Extent
CRS: - - Projected
X Minimum: 0
Y Minimum: 0
X Maximum: 0
Y Maximum: 0

となっていました。

道路中心線のレイヤのCRSをプロジェクトCRSとおなじにすると、
ご覧のとおり、隠岐諸島の西側、縮尺も合わない形で表示されました。(赤い点のようになってます)

何が起こっているのかよくわからず・・・。

他にも必要な情報があるでしょうか。

QGISは以前と変わらず3.10.1です。


どうぞよろしくお願いいたします。


tiles.png

 

plot.png

ありた

unread,
Apr 14, 2020, 9:33:58 AM4/14/20
to QGIS初心者質問グループ
こんにちは

タイルの位置情報が得られず、そのまま (0, 0) - (4096, 4096) の位置データになっていますね。


前回、私が書いた「 z_x_y.pbf 」ですけど、これは「 9_444_202.pbf 」にしてくださいと
いう意味で書いたのですが、確かに私の書き方が悪かったです。

「 9_444_202.pbf 」として読み込むと、自動的に 9/444/202 のタイルとして認識されるはずです。



前の投稿のあと、ほんの少しファイル仕様などに踏み込んだ記事について書きました。
今回 (0, 0) - (4096, 4096) のレイヤになった理由にも関連しています。参考までに。

kn.cosm...@gmail.com

unread,
Apr 14, 2020, 8:12:04 PM4/14/20
to QGIS初心者質問グループ
ありたさん
Nishikoriです。ありがとうございます!

私の方も、文面通りでやってしまって、トライが足りませんでした。
お答えのとおりやってみましたら、うまくいきました。

ファイルの仕様など、細かく分かっていないことを再確認しました。
記事も読ませていただきます。

ありがとうございました!
Reply all
Reply to author
Forward
0 new messages