Mükemmel bir çözüm değil, ancak kavşağı temsil etmek için görselleştirilmiş bir çizgi ekleyen Geometri Jeneratörünü kullanabilirsiniz . Daha sonra bunu orijinal çizgi özelliğinin üzerine gelecek şekilde ayarlayabilirsiniz.
Artı işaretine tıklayarak yeni bir sembol katmanı ekleyin ve Geometry generator
sembol katmanı türünü seçin. Geoemtry türünü LineString / MultiLineString
şu ifadeye ayarlayın ve aşağıdaki ifadeyi kullanın:
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
Belirli çokgeniniz hakkında ayrıntılar eklemeniz gerekir:
polygonLayer
çokgen katmanınızın adıdır
fieldName
alanın adı
value
çokgeninizin özellik değeridir
Görsel çizgiyi renklendirmek için, Çizim efektleri özelliğinden yapmanız gerekebilir :
Sonuç (görsel çizginin orijinal çizgiyle tamamen örtüşmediğine dikkat edin, bu yüzden ofseti biraz değiştirdim):
Ve çokgen olmadan:
Düzenle:
Bunun çokgen özelliğiyle kesişen her çizgi özelliğine uygulanmasını istiyorsanız, İşlev Düzenleyiciye gidin ve aşağıdaki işlevi kullanın ( polygon example_2
adını çokgen katmanınızın adıyla eşleşecek şekilde değiştirin ):
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
Click yükleyin sonra gidip İfade sekmesi ve yazın func()
. Umarım sonuç aşağıdaki gibi görünmelidir (yukarıda belirtilen aynı stil özelliklerini kullanarak):