A small Python API for 3D maps
Build a map.
Add what you need.
Combine imagery, vectors, 3D layers and shadows.
A few lines of Python. One interactive scene.
MODULES → MAP
All visual modules. One map.
The complete Mainz scene: aerial imagery, imperviousness (10 m), your polygons, 3D trees and adjustable shadows. Explore spatial building queries in a separate example.
MapWmsTileLayer × 2GeoJsonTreeLayerSunShadows
Python
from basemap3d import (Map, WmsTileLayer, GeoJson,
TreeLayer, SunShadows)
m = Map(location=[50.0063, 8.2692], zoom_start=16)
WmsTileLayer(opacity=0.7).add_to(m)
wms = "https://geoserver.geoville.com/geoserver/nvlcc_2024/wms"
WmsTileLayer(
url=wms, layers="HRL_NVLCC_IMD_2024_10m",
name="Imperviousness · 2024 · 10 m", opacity=0.8, show=False,
description="Copernicus IMD · 2024 · 10 m · 0–100 %",
attribution="© European Union · Copernicus Land Monitoring Service",
legend_url=wms + "?service=WMS&request=GetLegendGraphic"
"&version=1.1.1&format=image/png"
"&layer=HRL_NVLCC_IMD_2024_10m",
).add_to(m)
GeoJson("data/parking.geojson", popup=True).add_to(m)
TreeLayer().add_to(m)
SunShadows(date="2026-06-21", hour=17).add_to(m)
mThe preview uses a local OSM building snapshot; the Python code downloads buildings automatically. Maps and models require internet access.
New here? Build this scene one step at a time in Examples.Start with the base map →