Bukan solusi yang sempurna tetapi Anda dapat menggunakan Geometry Generator yang menambahkan garis yang divisualisasikan untuk mewakili persimpangan. Anda kemudian dapat mengatur ini untuk tumpang tindih fitur garis asli.
Tambahkan layer simbol baru dengan mengklik tanda plus dan pilih Geometry generator
tipe layer simbol sebagai. Setel tipe geoemtry ke LineString / MultiLineString
dan gunakan ekspresi berikut:
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
Anda perlu menambahkan detail tentang poligon spesifik Anda di mana:
polygonLayer
adalah nama lapisan poligon Anda
fieldName
adalah nama bidang
value
adalah nilai fitur dari poligon spesifik Anda
Perhatikan bahwa untuk mewarnai garis visual, Anda mungkin perlu melakukannya dari properti Draw effect :
Ini adalah hasilnya (perhatikan bahwa garis visual tidak tumpang tindih dengan garis asli sepenuhnya sehingga saya memodifikasi sedikit offset):
Dan tanpa poligon:
Edit:
Jika Anda ingin ini diterapkan untuk setiap fitur garis yang memotong fitur poligon, buka Function Editor dan gunakan fungsi berikut (ubah nama polygon example_2
untuk mencocokkan nama lapisan poligon Anda):
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
Klik Muat kemudian buka tab Ekspresi dan ketik func()
. Semoga hasilnya akan terlihat seperti berikut (menggunakan properti gaya yang sama yang disebutkan di atas):