eyecatch

【天気予報】島の場所を移動させた地図をQGISで作成する

投稿日: 最終更新日:
この記事はQGIS 3.34を使用しています。

この記事でわかること


  • 本来の場所とは異なる場所に地物を移動させて表示する方法

こんな人におすすめ


  • 主題図作成の際に、地図上の地物を本来と違う場所に移動させたい方

はじめに

みなさんは、QGISを使っていて離れた場所にある地物を地図上の空いているところに移動させたいと思ったことはないでしょうか?たとえば、天気予報では日本海側に琉球諸島が描かれている地図をよく見かけます。

天気予報のイメージ
天気予報のイメージ

QGISでこれを再現しようとすると、地物を直接移動させることで実現することは可能ですが、位置情報が正しい場所ではなくなるのであまり望ましい方法とはいえません。このようなニーズに応えるために、ジオメトリジェネレータを使ってそれを実現する方法について紹介します!

この記事は、株式会社MIERUNEのホームページで掲載されていた「QGISブログ」の内容を改訂して掲載したものです。

ジオメトリジェネレータとは

ジオメトリジェネレータは、式を使ってジオメトリの表示方法を制御する機能です。既存レイヤのシンボルとしてジオメトリが表示できるので、地物の位置情報を変更することなく地物の表示位置を変更することが可能です。

行政界レイヤの重心にポイントを表示
ジオメトリジェネレータで行政界レイヤの重心にポイントを表示

ジオメトリジェネレータの使い方

今回は、行政区域データを使用して、天気予報でよく見る地図を作成してみましょう。

まずは、国土数値情報から全国の行政区域データ(平成31年)をダウンロードします。

国土数値情報から全国の行政区域データ(平成31年)をダウンロード
国土数値情報から全国の行政区域データ(平成31年)をダウンロード

データを解凍後、QGISに「N03-19_190101.shp」をインポートすると、日本列島が表示されます。

ここで、プロジェクトの座標系をEPSG:3857に変更しておきましょう。

プロジェクトの座標系をEPSG:3857に変更する
プロジェクトの座標系をEPSG:3857に変更する

続いて、レイヤパネルより、「N03-19_190101」を右クリックして「プロパティ」を選択します。「シンボロジ」のタブから「シンプル塗りつぶし」を選択し、「シンボルレイヤ型」のプルダウンを開き「ジオメトリジェネレータ」を選択します。

シンボルレイヤ型からジオメトリジェネレータを選択する
シンボルレイヤ型からジオメトリジェネレータを選択する

「単位」の下部に式を入力する欄が表示されるので、次の式をコピペしましょう。

case
	when "N03_001" = '沖縄県' then
	translate($geometry, 5, 15)
else
	$geometry
end
入力欄に式を入力する
入力欄に式を入力する

マップキャンバスを見てみると、琉球諸島が本州から見て左上の位置に移動したことが確認できます。

琉球諸島が本州から見て左上の位置に移動した
琉球諸島が本州から見て左上の位置に移動した

今回使用した式について簡単に説明すると、CASE文を使って「N03_001」フィールドが「沖縄県」の地物をtranslate関数を使って平行移動させています。

translate(geometry,dx,dy)

geometry:ジオメトリ
dx:x方向の移動
dy:y方向の移動

せっかくなので、「レイヤ」→「新規レイヤ」→「新規一時スクラッチレイヤ」を追加より、ラインも追加してみましょう!

琉球諸島を区切るようにラインを追加
琉球諸島を区切るようにラインを追加

マップを確認してみると、天気予報さながらの地図が簡単に作成できました。また、scale関数を組み合わせて使うことで、地物の大きさを変更させることも可能です。

今回は上記のデータを都道府県単位でディゾルブしたレイヤに対して、次の式を入力します。なお、ディゾルブせずにscale関数を使用すると地物同士が重なりあってしまうため注意が必要です。

case
	when "N03_001" = '北海道' then
	scale(translate($geometry, -8,-2),2,2)
else
	$geometry
end

やっぱり本州と比べてみても北海道ってでっかいですね!

scale関数で北海道を二倍で表示
scale関数で北海道を二倍で表示

*北海道を二倍のサイズで表現しているため実際のサイズとは異なります。

おわりに

今回紹介した機能は、こちらのX(旧Twitter)の投稿を参考にしました。この機能は、成果図面を作成する際などにも有効かと思うので、みなさんもぜひ試してみてください!

この記事を書いた人
QGIS LAB編集部
QGIS LAB編集部

QGIS LABは、オープンソースのGISソフトウェア「QGIS」に関する総合情報メディアです。「位置と情報で世界を変える」をコンセプトに、位置情報で世界を拓くための知識と技術をお届けします。

関連する記事