QGISを使って国土交通省提供データの駅情報と都道府県を紐付ける方法
駅の情報を取得するために、QGISというものを初めて使い、かつ、都道府県ごとの駅情報を取得するためにはQGISで一手間必要だったのでその記録を残しておくことにしました!
はじめに
こんな機能を作りたかったんです。
例えば、都道府県で東京都を選択 > 東京都にある駅の一覧のセレクトを表示し、かつその駅には駅コードの値を持っている。
データは国土交通省から提供されている
駅データ
まず、そのための駅情報データですが、以下のサイトで無償で提供されています。
国土交通省から提供されているということもあり信憑性が高いのでこれを使いたいと思います。
「N02-22_GML.zip」というファイルをダウンロードします。
この中身を確認するとファイルが大量にあります。

駅の情報はこの中の「N02-22_Station.shp」を使用します。
これをQGISで確認すると以下のようなデータを表示できます。

データのところで右クリックして、「属性テーブルを開く」を選択すると以下のように、全国の駅の一覧を確認することができるようになりました!

駅の一覧は確認できましたが、ここで一つ問題があります。
各駅がどこの都道府県にあるものかがわかりません!
都道府県データ
そこで、次に、都道府県のデータを取得します。
この行政区域のデータを先ほどの駅データと同様にダウンロードします。
「N03-20250101_GML.zip」ファイルがダウンロードされます。

この中の「N03-20250101_prefecture.shp」を使用します。
ドラッグアンドドロップして、QGISで表示させましょう!

すると、こんな日本地図が表示されます。
これの属性テーブルを確認すると、以下のようになっています。

駅と都道府県を紐付ける
プロセシングツールボックスというものを使えるようにしたいので表示されるようにします。

上部のメニューのビュー > パネル > プロセシングツールボックスにチェックを入れます。
右側サイドメニューに検索窓が出てくるので「空間」と検索します。

「属性の空間結合」をダブルクリックするとダイアログが表示されるのでこの中を設定していきます!

地物を結合するレイヤ
Stationを選択します
比較対象
prefectureを選択します
結合するフィールド
prefectureの方で、nullの列は除き、都道府県名が入っている N03_001 と、都道府県コードの N03_007 を選択します。
結合型
もっとも重なる地物の属性のみ(1対1)を選択します。

上記4点の設定ができたら、実行します!
処理には結構時間がかかります。
完了すると、新しいレイヤが作成されるのでそこから属性テーブルで一覧を表示すると、見事、都道府県情報を持つ、駅の一覧情報の取得の完了です!!
Discussion