No hay una solución perfecta, pero se puede hacer uso de la Geometría Generador que añade un visualizadas línea para representar la intersección. Entonces, podría establecer esta a la superposición de la línea original de la característica.
Añadir un nuevo símbolo de la capa haciendo clic en el signo más y seleccione el Geometry generator
como símbolo del tipo de capa. Establecer el geoemtry tipo a LineString / MultiLineString
y el uso de la siguiente expresión:
intersection($geometry, geometry(get_feature( 'polygonLayer','fieldName','value')))
Se necesitaría añadir detalles acerca de su polígono donde:
polygonLayer
es el nombre de la capa de polígono
fieldName
es el nombre del campo
value
es la función de valor de su polígono
Tenga en cuenta que para el color de la línea visual, usted puede necesitar para hacerlo desde el Sorteo de los efectos de la propiedad:
Este fue el resultado (tenga en cuenta que la línea visual no se superpone a la línea original completamente así que he modificado el desplazamiento un poco):
Y sin el polígono:
Editar:
Si usted desea que se aplique para cada entidad de línea de intersección de un polígono característica, vaya al Editor de la Función y el uso de la siguiente función (cambiar el nombre de polygon example_2
a coincidir con el nombre de su capa de polígonos):
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
Haga clic en Cargar , a continuación, vaya a la Expresión tab y escriba en func()
. Esperemos que el resultado debería parecerse a la siguiente (usando el mismo estilo de propiedades mencionadas anteriormente):