完璧な解決策ではありませんが、交差点を表す視覚化された線を追加するジオメトリジェネレータを利用できます。次に、これを元のラインフィーチャと重複するように設定できます。
プラス記号をクリックして新しいシンボルレイヤーを追加し、Geometry generator
シンボルレイヤータイプとしてas を選択します。geoemtryタイプをに設定しLineString / MultiLineString
、次の式を使用します。
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
特定のポリゴンに関する詳細を追加する必要があります:
polygonLayer
ポリゴンレイヤーの名前です
fieldName
フィールドの名前です
value
特定のポリゴンの特徴値です
視覚的な線に色を付けるには、描画効果プロパティから行う必要がある場合があることに注意してください。
これは結果です(視覚的な線が元の線と完全には重なっていないため、オフセットを少し変更しました)。
ポリゴンなし:
編集:
これをポリゴンフィーチャと交差する各ラインフィーチャに適用する場合は、関数エディターに移動して次の関数を使用します(polygon example_2
名前をポリゴンレイヤーの名前と一致するように変更します)。
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def func(feature, parent):
polygon_layer = QgsMapLayerRegistry.instance().mapLayersByName( "polygon example_2" )[0]
feat_list = []
geoms = QgsGeometry.fromWkt('GEOMETRYCOLLECTION()')
for polygon_feat in polygon_layer.getFeatures():
if feature.geometry().intersects(polygon_feat.geometry()):
intersection = feature.geometry().intersection(polygon_feat.geometry())
feat_list.append(intersection)
for x in feat_list:
geoms = geoms.combine(x)
return geoms
[ ロード ] をクリックし、[ 式 ]タブに移動してと入力しfunc()
ます。うまくいけば、結果は次のようになるはずです(上記と同じスタイルプロパティを使用)。