Keine perfekte Lösung, aber Sie können den Geometrie-Generator verwenden, der eine visualisierte Linie zur Darstellung des Schnittpunkts hinzufügt. Sie können dies dann so einstellen, dass es die ursprüngliche Linienfunktion überlappt.
Fügen Sie eine neue Symbolebene hinzu, indem Sie auf das Pluszeichen klicken und den Geometry generator
Typ als Symbolebene auswählen . Stellen Sie den Geoemtry-Typ auf ein LineString / MultiLineString
und verwenden Sie den folgenden Ausdruck:
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
Sie müssten Details zu Ihrem spezifischen Polygon hinzufügen, wobei:
polygonLayer
ist der Name Ihrer Polygonebene
fieldName
ist der Name des Feldes
value
ist der Merkmalswert Ihres spezifischen Polygons
Beachten Sie, dass Sie die visuelle Linie möglicherweise über die Eigenschaft " Effekte zeichnen" ausmalen müssen, um sie einzufärben :
Dies war das Ergebnis (beachten Sie, dass die visuelle Linie die ursprüngliche Linie nicht vollständig überlappte, sodass ich den Versatz geringfügig geändert habe):
Und ohne das Polygon:
Bearbeiten:
Wenn Sie möchten, dass dies für jedes Linien-Feature angewendet wird, das ein Polygon-Feature schneidet, rufen Sie den Funktionseditor auf und verwenden Sie die folgende Funktion (ändern Sie den Namen von polygon example_2
, um ihn an den Namen Ihrer Polygon-Ebene anzupassen):
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
Klicken Sie auf Laden, wechseln Sie zur Registerkarte Ausdruck und geben Sie ein func()
. Hoffentlich sollte das Ergebnis wie folgt aussehen (unter Verwendung der oben genannten Stileigenschaften):