Following picture for explanation:

I want to create something like a street map with different objects in 3D. Those objects can be of different lengths.
From some external commands, I want to route from well known locations, like from A to B or B to C or A to C.
The routes are fixed, so there is actually no need for a pathfinding algo.
The "cars" should move very statically, so no real need for collision detection and such stuff. Basically it should just drive from lets say middle point of one tile to middle point of adjacent tile.
I was thinking about different strategies on how to implement this.
1. Use pathfinding for route finding and driving
Pros:
- Easy to code, algo will do the work
- less configuration
Cons:
- It might find a way, which I dont want it to use
- It is not very accurate in driving straight. So it might hit some edges and corners, but I want it to go fully straight.
2. Use pathfinding only for routing
Pros:
- I could use the pathfinding algo to identify all the tiles on the path and get their coordinates to route myself. This would be very accurate
- less configuration
Cons:
- It still might find ways which I dont want it to use
3. Identify adjacent tiles and route myself
Pros:
- Accurate in driving
- less configuration
Cons:
- If multiple adjacent tiles, it cannot know which one to take
4. Configure a routing map
Pros:
- It will always take the correct way
Cons:
- Alot more to configure. I would have to configure not only A --> B, but A --> adjacent tile --> adjacent tile --> ... --> B
I tend to use solution 4 to be very precise and dont rely on some algo.
Still I have the issue to drive correctly in this case. I need some logic to drive to the correct position of a tile and then change direction and drive onto the next tile, without hitting some wall.
I was thinking about passing the car to another tiles driving logic, when I hit the edge of a tile.
So in case of the example where I drive from B to C (east --> south --> west), the B tile should have some logic to identify that the adjacent tile is in the south and on the east side of the B tile. So it should drive the car to the most east edge of the B tile, turn it by 90° drive to the south until it hits the edge of the B tile. Then it should call some adjacent tiles function to take over the car. This adjacent tile then identifies that the next adjacent tile is in the complete south, so it should just drive straight until it hits its edge in the south and so on.
Is it clear what my thoughts are? Does it make sense or am I thinking way too complicated here?
Any ideas and input is grealty appreciated.