[ create a new paste ] login | about

Link: http://codepad.org/zFXO4XBC    [ raw code | fork ]

Python, pasted on Nov 4:
## linestring layer
lineLayer = iface.addVectorLayer("LineString", "Line Layer", "memory")
linePr = lineLayer.dataProvider()
## polygon layer
rectLayer = iface.addVectorLayer("Polygon", "Rectangle Layer", "memory")
rectPr = rectLayer.dataProvider()
## intersection layer
intLayer = iface.addVectorLayer("LineString", "Intersection Layer", "memory")
intPr = intLayer.dataProvider()
## define linestring
defLine = [QgsPoint(1,1), QgsPoint(2,1), QgsPoint(2,2), QgsPoint(1,2),
            QgsPoint(1,3), QgsPoint(2,3), QgsPoint(2,4), QgsPoint(1,4)]
## define polygon
defRect = [[QgsPoint(0.5,0.5),QgsPoint(1.5,0.5),
            QgsPoint(1.5,4.5),QgsPoint(0.5,4.5),QgsPoint(0.5,0.5),]]

line = QgsGeometry.fromPolyline(defLine)
rect = QgsGeometry.fromPolygon(defRect)

ft1 = QgsFeature()
ft1.setGeometry(line)
ft2 = QgsFeature()
ft2.setGeometry(rect)

linePr.addFeatures([ft1])
rectPr.addFeatures([ft2])

if line.intersects(rect):
    ## intersection
    int = QgsGeometry(line.intersection(rect))
    ft = QgsFeature()
    ft.setGeometry(int)
    intPr.addFeatures([ft])
    intLayer.updateExtents()


Create a new paste based on this one


Comments: