空間結合を使用しながら、入力レイヤーに結合フィールドを自動的に出力します
Aug 24 2020
たとえば、次の2つのレイヤーがあります。
city block
IDフィールドを持つポリゴンレイヤーcity block index
。parking lot
フィールドを持つポイントレイヤーparking lot size
。
レイヤーparking lot size
内の各フィーチャの合計を知りたいland use
ので、空間結合関数を使用します。これが私のワークフローです:
- と呼ばれるフィールドを含む
join attributes by location (summary)
新しい一時的なものを作成するために使用します。joined layer
parking lot size_sum
city block
レイヤーのプロパティパネルに移動し、parking lot size_sum
と呼ばれる新しいフィールドとしてフィールドを結合しますjoined layer_parking lot size_sum
。- では
city block
層と呼ばれる新しいフィールドを作成しますtotal parking lot size
。 - から値をコピーして
joined layer_parking lot size_sum
、に貼り付けますtotal parking lot size
。 - 一時的なを削除し
joined layer
ます。
私がやりたいのcity block
は、parking lot size
フィールドを要約して元のレイヤーに新しいフィールドを追加することだけです。しかし、私は上記のすべてのステップを実行する必要があります。それを行う簡単な方法はありますか?
回答
3 Taras Aug 24 2020 at 14:18
コメントで述べた解決策。
を通じて「仮想レイヤー」を使用するLayer > Add Layer > Add/Edit Virtual Layer...
次のクエリを使用すると、「街区」ごとの「駐車場の合計サイズ」を知ることができます。
SELECT cb.*, SUM(pl."parking lot size") AS pl_sum
FROM "city block" AS cb
JOIN "parking lot" AS pl ON st_contains(cb.geometry, pl.geometry)
GROUP BY cb."city block index"