Online/realtime 3d map

Hi there,

I started using OSM data some time ago to create maps/models in 3d. It took me some time to “understand” how OSM works, but so far I’m able to use its data in a 3d software with the help of a python importer.

Creating a real 3d map might be an undertaking which would take a long time to program, and even then, it would be buggy or wrong in some places, I mainly focus on extruding the building shapes into the 3rd dimension, leaving the rest of the map 2D.

This works great within the 3d app, when I render the images as a still for print for example.

But now I got asked if I could do this also in realtime for a website. I came across OSMbuildings, but am not sure what it is. Is it a service from a company or an engine which could be used by everybody?

And even then, would it be the “state of the art” way to present an online 3d map? Honestly, on my laptop the performance is quite slow, it lacks depth (shadows/ambient occlusion) and a certain style which makes it pleasant to look at these maps.

So, what are my options? How is it done in the late 2020/ early 2021?

The only alternative which came to my mind:

Since the map usually needs to be for a certain city only, a game engine like unity or unreal could be used to stream a highly styled map/3d model in realtime to the html website of the client. Since the traffic won’t exceed a certain limit I guess this could be an alternative option to OSM buildings.

Any thoughts or/and insights?

Every input is highly appreciated.

Cheers!

Hi Sam,

my understanding is that the client for OSM Buildings is open source, and that the developer is offering a commercial service that you can connect the client to, with non-commercial users being allowed to use it for free. (But presumably you could implement your own server if you wanted.)

I believe I’m in a somewhat similar position to yours because I’ve been working on a side project to generate 3D models from OSM data for several years (OSM2World), but have been sorely missing a frontend that would make them look nice in the browser.

What I’ve found is that there are frameworks which are good at handling the geospatial aspects (e.g. cesium.js - actually pretty good as well), and there are frameworks which have all the snazzy graphics features (three.js, babylon.js). But I’m not aware of anything that combines both sets of features quite the way I wanted.

So I ultimately decided to bite the bullet, grab babylon.js to get proper PBR, shadows, ambient occlusion etc. for free and cobble together my own logic for loading 3D models as tiles. Most of the work for that is being done by another developer, Karlos. We’ll release it under an open source license once it’s done; it’s still very much a work in progress, though. So that’s unfortunately not much help to you right now, but you could have a look at some of the existing options. It would be great to hear about your further progress. :slight_smile: