🌍 Introducing the Global Building Atlas

The Global Building Atlas is a new global, high-resolution 3D dataset of the world's 2.75 billion buildings. Developed by a research team at the Technical University of Munich (TUM) the Global Building Atlas provides broad coverage of areas historically missing from digital maps, including much of Africa, South America, and rural areas worldwide.

All the data is freely available on the project's GitHub page and you can preview the data for any area on the GlobalBuildingAtlas LoD1 interactive map (zoom in on an area to see the 3D buildings). 

A WFS is also provided if you want to download the 3D building data for a specific area:

Url: https://tubvsig-so2sat-vm1.srv.mwn.de/geoserver/ows?

Tutorial

You can use this URL to download the 3D building data for any region of the world. Here is a Quick Tutorial for grabbing the data and building a Maplibre interactive 3D map:

Step 1: Select your area

Decide the area you want to extract buildings from. For example, a 1-mile-square bounding box in the City of London.

Step 2: Python script to download data from WFS

We can use GeoPandas to load the WFS directly, then save it as GeoJSON. You can copy & paste this Python Script directly into Google Colab (and then press 'run').

import geopandas as gpd

# WFS GetFeature URL for GlobalBuildingAtlas
bbox = "-11041.39,6712191.30,-9441.39,6713791.30,EPSG:3857"

url = (
    "https://tubvsig-so2sat-vm1.srv.mwn.de/geoserver/ows?"
    "service=WFS&version=2.0.0&request=GetFeature&"
    "typeNames=global3D:lod1_global&"
    "srsName=EPSG:3857&"
    f"bbox={bbox}"
)

# Load buildings from WFS
gdf = gpd.read_file(url)
print(f"Downloaded {len(gdf)} building features.")

# Save to GeoJSON for MapLibre
gdf.to_file("city_of_london_1mile.geojson", driver="GeoJSON")
print("Saved to city_of_london_1mile.geojson")

What this script does:

  • Downloads buildings from GlobalBuildingAtlas for your bounding box (change the bounding box coordinates to download the data for any area).
  • Loads them into a GeoDataFrame (gdf)
  • Saves the data as a GeoJSON file for use in MapLibre or other GIS apps. Oonce the script has been run in Google Colab the GeoJSON data should be available to download (click the folder icon).

Step 3: A MapLibre GL JS demo map

Now that you have a GeoJSON file, you can use this data with the mapping library of your choice (MapLibre, Leaflet, Mapbox GL, etc.) to visualize the buildings.

However, there’s an important consideration: the GlobalBuildingAtlas GeoJSON coordinates are in EPSG:3857 (Web Mercator) by default, not standard longitude/latitude (EPSG:4326). Many web mapping libraries, including MapLibre, expect coordinates in WGS‑84 (EPSG:4326). If you try to load the EPSG:3857 coordinates directly, the buildings may appear off the map or not at all.

To handle this, you will probably need to use a library like Proj4 to reproject the coordinates from EPSG:3857 to EPSG:4326 before displaying them in your map. This ensures that your buildings align correctly with the basemap tiles and appear in the correct geographic location.

If you want a ready-made example of a 3D building map using this dataset, I've created a demo MapLibre map of the City of London. This demo shows buildings extruded in 3D and includes a basemap, giving you a template you can use or adapt for your own area of interest.

Comments

Popular Posts