Mapping multiple levels and 3D routing

Hi everyone,

I’m currently using a local copy of some OSM data to render tiles locally and do routing. However, my client now wants me to do routing and mapping within a large multi floor building.

Has anyone seen any examples of how to perhaps work with layers to show floors of large buildings?

Also, any thoughts on how to deal with routing when you can go up and down?

Any pointers would be really useful.

Kieran might help, despite rendering pretty badly :slight_smile:

Well, I do not do Routing with multiple levels, but I did rendering with each level rendered on its own. Therefore I didn’t use the layer-tag, as it is simply a Tag for rendering order. Instead I used the level=* tag for defining on which level an object is. This works quite well, and is without any complicated 3d-object relations or anything else.

It’s important to draw each way on a level on it’s own, and not add a tag that it is on levels i.e. 1;2;3 . This will cause Problems with routing, as it’s not sure, on which level you are, and it’s not sure which nodes and connected ways are on which level. For connectors of multiple levels (steps, elevators), I use this semicolons like in level=-1;0;1 for an elevator which can be accessed from levels -1;0;1 .
Well, you could do this, but it would make routing much more complicated. If you strictly seperate everything, routing should be okay with every routing, despite it cannot say on which level you are, or to go up/downstairs. Elevators aren’t recognized either, but elevators on nodes would do their job as well.

For nice routing there’s zoomlevel 19 or 20 missing, but it doesn’t make routing worse. Just watching the route. :smiley:

On this example you can see routing through a subway station. As Openrouteservice does not route on platforms, it can actually not route you from a platform on level=-2 to another station on ground level, but from the stairs on level=-2, see the following link:,51.226038&end=6.7769111,51.2254442&pref=Pedestrian&lang=en&noMotorways=false&noTollways=false

Hi ya,

Thanks very much for the replies. The routing idea with levels on stairs/lifts sounds like a good plan, thanks for that.

Tags for building levels for rendering also sounds perfect. So simple really when you mention it! :slight_smile: