there was a long thread on this recently. Not sure in the end that there is an ideal solution, as sat navs rely on going point to point, so they need to have those points and then can vary the route between, rather than using the line of a road as such
found it! there may be some useful info in this thread,