extract edge of a line of a vector layer in a new point layer [closed]

I'm using python to build a plug-in in Qgis. I need to extract the edges of each line feature of a vector layer to create a new point layer of all edges. Someone can help me? My data input is a vector line shapefile that represent the roads of a city.

Thanks, Raffaele

-

closed as unclear what you're asking by whuber♦Dec 23 '13 at 16:20

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

Do you mean that you want to extract the line nodes instead of edges? Do you need start and end node or all intermediate nodes? – underdark Apr 16 '12 at 10:58

If you want just the points (nodes/vertices) then use: Vector->Geometry Tools->Extract nodes.

Alternatively, if you want the edges between nodes (i.e. the result is a data set with lines defined by no more than two nodes, the total of which combine to represent the original line), then you want the "Split Features" plugin. Go to Plugins->Fetch Plugins. Then type 'split' into the search box and you should find it (you may have to enable 3rd party repositories). Install the plugin and then you will find it here: Plugins->Split Featutres.

-
I need the code in Python. THANKS! – raffalba May 21 '12 at 16:25

If by "edges" you think start and end nodes, you may use for a line, Shapely function "boundary" ,for instance try in the QGIS 2 Python console , respect spaces between numbers in LINESTRING():

import shapely

Line.boundary.wkt

this will return:

'MULTIPOINT (0.0000000000000000 0.0000000000000000, 5.0000000000000000 0.0000000000000000)'

in order to get all nodes you could use: list(Line.coords)

it returns in my exemple:

[(0.0, 0.0), (2.0, 0.0), (2.0, 1.0), (5.0, 0.0)]

-