QGISでテキストからポイント・ライン・ポリゴンを読み込む

久々にやったらハマったので記事にします.QGISで,位置座標付きのテキストデータをベクタとして取り込む時の方法について.

まず,ポイントデータとして取り込みたい場合.

X,Y
134.5,35.5
136.5,35.5
136.5,36.5
134.5,36.5
134.5,35.5

こんな感じで,XY座標のついたCSV等のテキストでOKです.もちろん,後ろや前に他の列があっても大丈夫.QGISのメニュー→レイヤ→レイヤの追加→デリミテッドテキストレイヤの追加で以下のように設定.

QGIS3.*の場合.2.18でも内容は変わらない.
ばっちり読み込みます.

次にライン.これはちょっと手間がかかる.

geom,name
"LINESTRING(134.5 35.5,136.5 35.5,136.5 36.5,134.5 36.5,134.5 35.5)",Square

ラインの場合はこんな感じ.geomとnameという2つのフィールドを作ってみた.geomの中身は,”LINESTRING”でラインであることを宣言し,線を引きたい点の座標を並べてます.必要なのはgeomだけだけど,他の属性(IDとか名前とか)を付加したい場合はカンマなどの区切り文字を入れれば良いです.ポイントデータと同じくデリミテッドテキストレイヤの追加で以下のように設定.

Well known text (WKT)を選ぶ.ジオメトリフィールドはgeom.
ラインとして読み込まれる.スタート地点に戻るには,座標が5個必要.

最後はポリゴン.ラインとほぼ同じ.

geom,name
"POLYGON((134.5 35.5,136.5 35.5,136.5 36.5,134.5 36.5,134.5 35.5))",Square

ラインとの違いは,”LINESTRING”→”POLYGON”と,カッコの数.ポリゴンの場合はカッコが2つ必要です.

ラインとほぼ同じ.ジオメトリタイプだけが違う.
ポリゴンとして読み込まれる.

地物データが複数ある場合はこんな感じ.

geom,name
"LINESTRING(134.5 35.5, 136.5 35.5)",square1
"LINESTRING(136.5 35.5, 136.5 36.5)",square2
"LINESTRING(136.5 36.5, 134.5 36.5)",square3
"LINESTRING(134.5 36.5, 134.5 35.5)",square4
上のを読み込んでnameで色分け&ラベリング.

座標さえあれば,ちょこっとリストをいじるだけで取り込めます.WKT便利.

コメントを残す