snapPointsToLines: Snap a set of points to a set of lines

Description Usage Arguments Value Author(s) See Also Examples

View source: R/point_line_distance.R

Description

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.

Usage

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

Arguments

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.

Value

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

Author(s)

German Carrillo and Ethan Plunkett

See Also

nearestPointOnSegment, nearestPointOnLine, sp

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 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)

Example output

Loading required package: sp
Checking rgeos availability: FALSE
 	Note: when rgeos is not available, polygon geometry 	computations in maptools depend on gpclib,
 	which has a restricted licence. It is disabled by default;
 	to enable gpclib, type gpclibPermit()

maptools documentation built on Sept. 7, 2021, 5:09 p.m.