I'm working with recent Census (TIGER) road files in ArcGIS 10.5 / ArcPy (Advanced license). I want to get the road name(s) of the closest road segment (between intersections) to a point. Roads in this dataset frequently have different names which are represented by overlapping lines. The example below is output from Intersect with line output; this type of overlap occurs for a good portion of my dataset.
To get the roads into segments broken by the intersections, I used Unsplit Line then Feature to Line.
Using Near analysis would get me the closest road to specific points, but doesn't reflect the other road names / aliases. I'm looking for something similar to Spatial Join where you can have a combined output field, but Spatial Join requires two input layers. What I've thought to try next are either a) copy the layer and use Spatial Join or b) Use the Near Tool with a maximum of 10 nearest objects and somehow query the table (cursor?) based on NEAR_FID and NEAR_RANK and write the results to a new field. Am I missing any better approaches here?
This question is similar to how to identify cross streets for points that are not at intersections? but I'm looking for all of the names of the road the point is on, not the names of the cross streets.