This function is a wrapper around gDistance that matches lines based on the Hausdorff distance
line_match(l1, l2, threshold = 0.01, return_sp = FALSE)
A spatial object
A spatial object
The threshold for a match - distances greater than this will not count as matches
Should the function return a spatial result (FALSE by default)
Other lines: angle_diff
,
geo_toptail
, is_linepoint
,
line2df
, line_bearing
,
line_midpoint
, line_sample
,
line_segment
, line_via
,
mats2line
, n_sample_length
,
n_vertices
, onewaygeo
,
onewayid
, points2line
,
toptail_buff
, toptailgs
,
update_line_geometry
# NOT RUN {
x1 <- 2:4
x2 <- 3:5
match(x1, x2) # how the base function works
l1 <- flowlines[2:4, ]
l2 <- routes_fast[3:5, ]
(lmatches <- line_match(l1, l2)) # how the stplanr version works
l2matched <- l2[lmatches[!is.na(lmatches)], ]
plot(l1)
plot(l2, add = TRUE)
plot(l2matched, add = TRUE, col = "red") # showing matched routes
l2matched2 <- line_match(l1, l2, return_sp = TRUE)
identical(l2matched, l2matched2)
# decreasing the match likelihood via the threshold
line_match(l1, l2, threshold = 0.003)
# }
Run the code above in your browser using DataLab