jueves, 7 de diciembre de 2017

Cómo dividir una línea mediante método 'splitFeatures' de QgsVectorlayer con PyQGIS

El método 'splitFeatures' de QgsVectorLayer usa una lista de QgsPoint de una línea de corte para dividir, por ejemplo, otra línea. La división se hará en el punto de intersección de ambas. Para probarlo se utilizarán las capas que se visualizan en la imagen siguiente:


La tabla de atributos del vectorial objeto de corte presenta, hasta el momento, un sólo feature. El código a usar se presenta a continuación:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
registry = QgsMapLayerRegistry.instance()

line = registry.mapLayersByName("new_line")
cut_line = registry.mapLayersByName("cut_line")

l_feat = cut_line[0].getFeatures().next()

l_cut = l_feat.geometry().asPolyline()

print line[0].splitFeatures(l_cut, True)

La ejecución del código anterior, en modo de edición de la línea objeto de corte, permite visualizar en la imagen a continuación que ahora se tienen dos features en la tabla atributiva del vectorial new_line. Estos representan el resultado del corte por cut_line en el punto de intersección de ambas. En la imagen también se observa que uno de ellos ha sido seleccionado para corroborar que el corte se produjo de manera efectiva.


No hay comentarios: