The number of points will be double the number of lines with line2points. A closely related function, line2pointsn returns all the points that were line vertices. The points corresponding with a given line, i, will be (2*i):((2*i)+1). The last function, line2vertices, returns all the points that are vertices but not nodes. If the input l object is composed by only 1 LINESTRING with 2 POINTS, then it returns an empty sf object.

line2points(l, ids = rep(1:nrow(l)))





An sf object or a SpatialLinesDataFrame from the older sp package


Vector of ids (by default 1:nrow(l))

See also


l <- routes_fast_sf[2, ] lpoints <- line2points(l) plot(l$geometry)
plot(lpoints, add = TRUE)
# test all vertices: plot(l$geometry)
lpoints2 <- line2pointsn(l) plot(lpoints2$geometry, add = TRUE)
# extract only internal vertices l_internal_vertices <- line2vertices(l) plot(sf::st_geometry(l), reset = FALSE)
plot(l_internal_vertices, add = TRUE)
# The boundary points are missing