There are scenarios where our clients need 3d buildings on the map. And not just 2.5D extrusions; they require fully detailed 3D building models. In many countries, Google Maps provides a reliable solution for this, but its coverage is not universal. Several countries lack detailed 3D building data due to various reasons.
One common use case is in the real estate industry, where agencies need to showcase properties within their geographical context. It's important for both the seller and the buyer to visualize not just the apartment, but also the surrounding area and the building’s appearance in reality.
This becomes especially relevant for new or planned constructions. Even if Google has coverage in the region, it might not reflect the latest developments.
So, how can this be addressed using Mapbox or Cesium?
Step 1: Prepare the Model in GLTF/GLB Format
Software like Blender or Rhino offer direct export options to GLTF/GLB. If you’re using software like Bentley Microstation/ContextCapture, 3ds Max, or Revit, you can use command-line tools like obj2gltf. Ensure that textures are preserved during export.
Step 2: Georeference the Model
GLTF does not inherently contain geospatial data, so manual georeferencing is required.
Option 1: Cesium
If you’re working within the Cesium ecosystem, you can use Cesium ion to georeference your model. The Cesium ion interface allows you to place your model at the correct location, altitude, and orientation.
Afterward, you can export the model as Cesium 3D Tiles.
Option 2: Manual Georeferencing with Mapbox
You can manually georeference the model using a custom frontend, such as Mapbox. This can be done by following this Mapbox example, replacing the sample model with your own, and adjusting the coordinates and rotation.
While more labor-intensive, this approach is useful if you cannot use Cesium ion due to data privacy concerns. Note that performance can degrade with large models, so it’s recommended to split them into 3D tiles using tools like objTo3d-tiles
Related links