`snapPointsToLines.Rd`

This function snaps a set of points to a set of lines based on the minimum distance of each point to any of the lines. This function does not work with geographic coordinates.

snapPointsToLines(points, lines, maxDist=NA, withAttrs = TRUE, idField=NA)

points | An object of the class SpatialPoints or SpatialPointsDataFrame. |
---|---|

lines | An object of the class SpatialLines or SpatialLinesDataFrame. |

maxDist | Numeric value for establishing a maximum distance to avoid snapping points that are farther apart; its default value is NA. |

withAttrs | Boolean value for preserving (TRUE) or getting rid (FALSE) of the original point attributes. Default: TRUE. This parameter is optional. |

idField | A string specifying the field which contains each line's id. This id will be transferred to the snapped points data set to distinguish the line which each point was snapped to. |

SpatialPointsDataFrame object as defined by the R package 'sp'. This object contains the snapped points, therefore all of them lie on the lines.

# From the sp vignette l1 = cbind(c(1,2,3),c(3,2,2)) l1a = cbind(l1[,1]+.05,l1[,2]+.05) l2 = cbind(c(1,2,3),c(1,1.5,1)) Sl1 = Line(l1) Sl1a = Line(l1a) Sl2 = Line(l2) S1 = Lines(list(Sl1, Sl1a), ID="a") S2 = Lines(list(Sl2), ID="b") Sl = SpatialLines(list(S1,S2)) df = data.frame(z = c(1,2), row.names=sapply(slot(Sl, "lines"), function(x) slot(x, "ID"))) Sldf = SpatialLinesDataFrame(Sl, data = df) xc = c(1.2,1.5,2.5) yc = c(1.5,2.2,1.6) Spoints = SpatialPoints(cbind(xc, yc)) if (rgeosStatus()) snapPointsToLines(Spoints, Sldf, maxDist=0.4)#> class : SpatialPointsDataFrame #> features : 3 #> extent : 1.36, 2.36, 1.18, 2.35 (xmin, xmax, ymin, ymax) #> crs : NA #> variables : 2 #> names : nearest_line_id, snap_dist #> min values : a, 0.212132034355964 #> max values : b, 0.357770876399966