R/linefuns.R
angle_diff.RdThis function was designed to find lines that are close to parallel and perpendicular to some pre-defined route. It can return results that are absolute (contain information on the direction of turn, i.e. + or - values for clockwise/anticlockwise), bidirectional (which mean values greater than +/- 90 are impossible).
angle_diff(l, angle, bidirectional = FALSE, absolute = TRUE)
| l | A spatial lines object |
|---|---|
| angle | an angle in degrees relative to North, with 90 being East and -90 being West. (direction of rotation is ignored). |
| bidirectional | Should the result be returned in a bidirectional format? Default is FALSE. If TRUE, the same line in the oposite direction would have the same bearing |
| absolute | If TRUE (the default) only positive values can be returned |
Building on the convention used in bearing() and in many applications,
North is definied as 0, East as 90 and West as -90.
Other lines:
geo_toptail(),
is_linepoint(),
line2df(),
line2points(),
line_bearing(),
line_breakup(),
line_match(),
line_midpoint(),
line_sample(),
line_segment(),
line_via(),
mats2line(),
n_sample_length(),
n_vertices(),
onewaygeo(),
points2line(),
toptail_buff(),
toptailgs(),
update_line_geometry()
#> GEOS GDAL proj.4 GDAL_with_GEOS USE_PROJ_H #> "3.8.0" "3.0.4" "7.0.0" "true" "true"# fails on some systems (with early versions of PROJ) if(lib_versions[3] >= "6.3.1") { # Find all routes going North-South lines_sf = od2line(od_data_sample, zones = zones_sf) angle_diff(lines_sf[2, ], angle = 0) angle_diff(lines_sf[2:3, ], angle = 0) a <- angle_diff(flowlines, angle = 0, bidirectional = TRUE, absolute = TRUE) plot(flowlines) plot(flowlines[a < 15, ], add = TRUE, lwd = 3, col = "red") # East-West plot(flowlines[a > 75, ], add = TRUE, lwd = 3, col = "green") }#>