フィールド計算機を使用して交差点を確認します

Dec 03 2020

究極の目標

ジオメトリと交差するフィールド計算機を使用して、レイヤーから属性を取得する予定です。

現在のステップ

電流$geometryが対象のレイヤーと交差するかどうかを確認します。

私が試したこと

intersects($geometry,collect_geometries('Layer'))-およびのバリエーションmap_get。既知のジオメトリを渡さなければならないことを知ったばかりなのでintersects、レイヤーにジオメトリがあるかどうかを確認したいのですが、実際には途方に暮れています。フィールド計算機を使って交差点をチェックする方法がわかりません。

フィールド計算機を使用してこれが不可能な場合は、Pythonでしょうか?

回答

4 Babel Dec 03 2020 at 23:03

属性「name」を含むポリゴンを持つレイヤーがあると仮定します。以下のスクリーンショットでは、この名前フィールドの値はA、B、C、D、E、およびFです(ポリゴンにはラベルが付けられています)。

さらにラインレイヤーがあり、ラインが交差するポリゴンの名前を取得したいと思います。QGIS 3.16(視覚的な変更ログを参照;古いQGISバージョンについては、そこで参照されているRefFunctionsプラグインが役立つ可能性があります)以降、新しいオーバーレイ式があります。それらの1つを使用して、交差するポリゴンの名前で線にラベルを付けることができます。同様に、式をフィールド計算機で使用して、新しいフィールド(動的計算用の仮想フィールドも)を生成できます。

array_to_string ( 
   overlay_intersects ( 
      'Polygons', 
      name
    ) 
)