I have a polygon dataset representing pavement areas broken up by year of construction and a roads centerline dataset that contains values for remaining service life (RSL). I want to spatially join the two datasets so that the RSL values are added to the correct pavement polygons. However the centerlines are not split along the same lines that the pavement polygons were so in some cases multiple lines intersect a single polygon. To avoid this I though I would set the
HAVE_THEIR_CENTER_IN match_option, in ArcMap 10.2.2, but upon further inspection there are shorter polygons that correspond to a longer line segment that will not have its center within the polygon. This picture tells it better:
The arrows represent the breaks of the lines. Notice how some polygons have multiple lines intersecting them, and others will not contain the center point of the line segment.
My tentative plan is to split the line segments by the polygons and then remove the small line segments that do not correspond to the pavement polygon they fall into. This will be tedious and I was hoping for a better way. Open to QGIS, ArcMap and Python solutions.
Is there a way to do a spatial join where only the values from the longer line segments that intersect a polygon are kept while the shorter line segment(s) are ignored?