Anita Graser & Gretchen N. Peterson "QGIS Map Design (2nd Ed.)" という本にあった作法を参考に、ちょっと違うやり方で作りました(p.65 “8. Genearating Cloudy Masks”):
この書籍は、以下の過去事例(by Dylan Moriarty)を参考にしたそうです。Coolです:
手順
QGISで「衛星画像」を表示
こちらが参考になります↓
今回は「地理院写真」を利用しました。
たくさんの「点」をランダムにつくる
これが「雲」になります。
- メニュー → 「プロセシング」 → 「ベクタ作成」→「ランダム点群」
- 作成範囲:
キャンバス領域を使用
- 点の数:
10000
(適宜調整) - 点距離感の最小距離: 0
- 作成範囲:
- いい感じのスタイルにする
- グレーで透過
-
#ededed
, 透過率20%
「雲のないところ」をつくる
- エリアのポリゴンを持ってくる
- 今回は 国土数値情報 | 行政区域データ
N03-20210101_01_GML.zip
(北海道) を利用した
- 今回は 国土数値情報 | 行政区域データ
- 雲がない場所を指定する
- Layer:
N03-21_01_210101
- Polygons:
("N03_004" = '中央区') OR ("N03_004" = '厚別区')
- Layer:
scale_exp(
distance(
$geometry,
union(
geometry(get_feature('N03-21_01_210101_geo', 'N03_004', '中央区')),
geometry(get_feature('N03-21_01_210101_geo', 'N03_004', '厚別区'))
)
),
16616000, 16666847,
0, 500,
0.5
)
参考: scale_exp
関数↓
指数曲線を用いて、与えられた値を入力範囲から出力範囲に変換します。この関数は、指定された出力範囲へ値をイージングするために使用します。
構文
scale_exp(value, domain_min, domain_max, range_min, range_max, exponent)
↑の想定: 対象エリアから離れるにつれ円の半径を大きくする
... うまくいかない
-
geometry()
→ ジオメトリツールでポリゴンに「ジオメトリ属性を追加」しておく必要あった-
distance()
が、思ったような数字ではない - 「ポリゴンとポイントの距離」とは?
-
→ 別案
- 「そのエリアなしのレイヤー」で「ランダムな点のレイヤー」を切り抜く(クリップ)
- 円のサイズを、
rand(100, 500)
みたいにしてそれっぽくする - ⇒ それなりにできたが、雲が切れるところで、「円」という感じに見える
- (書籍での方法だと、切れるところ=縁に近づくにつれ、半径が小さくなるので、より自然では)
参考: 書籍 ""QGIS Map Design" でのオリジナル
本のダウンロード可能なリソース:
「memory layer」なるものを使っているので、プラグインが必要: