Good question. Basically it boils down to placing houses relative to intersections:
| 12
-----+-------
11 |
Now consider that in hilly terrain, roads will loop between intersections:
<main road<-------|
5 +------> side road
>main road>-------|
There's no reasonable way to assign house number 5 to either road segment on the left, even though we know it's on the main road.
In general, you can assume roads are line segments between intersections, and just check which of the line segments is closest to the house position. The validity of this approach is perfect in say Kansas City and rather poor in a random Alpine ski resort.