QuantumGISに同心円をらくらくで描く方法

仕事柄、地図を記載するときはスケールバーでスケールを表すことよりも中心点からの同心円で表す事が多いです。


QuantumGISで同心円を描こうとするとき、通常は「ベクタ」→「空間演算ツール」→「バッファ」で
同心円を記述しますが、これだと単一の地点に円が一つしか描けないため、同心円でスケールを表す事ができません。
同心円の個数だけバッファの処理を行ってshpファイルを保存するのも面倒です。これを回避するために以下のような手法を思いついたのでメモ。


用意するのはQuantumGISとPostGIS(理屈的にはSpatial Liteでもいいはず)、最後にQGISプラグインのDB Managerをインストールしてセットアップしておきます。


今回は東京タワーに5km圏のバッファ円を4つプロットしてみます。
DB ManagerでSQLを使って5km圏の同心円のポリンゴンデータを読み込みます。


①「データベース」から「DB Manager」を選択します。



②「PostGIS」からデータベースを選択して、「SQL Window」ボタンを押下します。



③以下のSQLを「SQLクエリ」に記述して、データをロードする。。

select id, ST_Buffer(ST_GeomFromText('POINT(139.745447 35.65861)'), id*0.049456) geom from unnest(ARRAY[1,2,3,4]) id;

0.049456は5kmを表す度、POINT(139.745447 35.65861)は東京タワーのことです。
ポイントはunnest句を用いてARRAYから仮のテーブルを作成しているところです。
これをST_Bufferのバッファ半径に掛けることで同心円が複数作成されます。



SQLを記述して「実行」ボタンを押下して、「新レイヤとしてロードする」にチェックを入れ「整数のユニークな値で構成されるカラム」に「id」を、「ジオメトリカラム」に「geom」を指定します。
レイヤ名は適当に名づけて「今ロードする!」ボタンを押すと同心円のポリゴンがロードされます。

④書式設定を変更する。
書式設定を変更して、塗りつぶしをなくして、枠線だけにすると以下のような同心円バッファが記載されます(CRSの設定で楕円になってますが。)。



やったね!