How do I uniformly apply the same texture to many uneven faces on a mesh, such as a road? I'm very new to blender and was following a tutorial to build roads. This worked out pretty well, and now I want to add a road texture to my road.
Here is an image of the mesh, it is basically just many semi-square faces on the same mesh.

I want to apply a road texture to at least the non-intersection road segments, as I understand these would require a different approach.

So far what I've tried is I've smart unwrapped the road and scaled the resulting UV map so that a single square fills the area, then used a road texture as input. This worked, but only for one direction. The white stripe in the middle of the road was not evenly aligned. I can also just manually work on the UV map or paint it, but with this many segments it's too much work to be feasible.
Below is kind of what I want (I've tried emulating it with paint), but I can't find out the Google terms that will help me solve this myself.

Is there any way to apply a road texture to each of these faces, so that the middle white stripe of the road is always centered and respected?
I've uploaded my Blender project here: https://easyupload.io/s3s0d5
You can use the Follow Active Quads command.
It's fast and gives good results since none of your roads is perfectly straight.

Select the segment you want to unwrap
Go UV &gt; Follow Active Quads
Scale and move the UV islands in the UV editor (they will all end up on top of each other)

Note: Sometimes the command doesn't work properly, so just reset the selected faces (UV &gt; Reset) and try again