In [1]:
Copied!
# %pip install "leafmap[maplibre]"
# %pip install "leafmap[maplibre]"
Import library¶
In [2]:
Copied!
import leafmap.maplibregl as leafmap
import leafmap.maplibregl as leafmap
In [3]:
Copied!
# import os
# os.environ["MAPTILER_KEY"] = "YOUR_API_KEY"
# import os
# os.environ["MAPTILER_KEY"] = "YOUR_API_KEY"
Add globe control¶
In [4]:
Copied!
m = leafmap.Map(center=[-100, 40], zoom=3, style="liberty")
m.add_globe_control()
m
m = leafmap.Map(center=[-100, 40], zoom=3, style="liberty")
m.add_globe_control()
m
Use globe projection¶
In [5]:
Copied!
m = leafmap.Map(center=[-100, 40], zoom=3, style="basic", projection="globe")
m.add_overture_3d_buildings()
m
m = leafmap.Map(center=[-100, 40], zoom=3, style="basic", projection="globe")
m.add_overture_3d_buildings()
m
Failed to retrieve the MapTiler style. Defaulting to OpenFreeMap 'liberty' style.
In [6]:
Copied!
m = leafmap.Map(center=[-100, 40], zoom=3, style="3d-hybrid", projection="globe")
m
m = leafmap.Map(center=[-100, 40], zoom=3, style="3d-hybrid", projection="globe")
m
An API key is required to use the 3D terrain feature.
Create 3D choropleth maps¶
In [7]:
Copied!
m = leafmap.Map(
center=[19.43, 49.49], zoom=3, pitch=60, style="basic", projection="globe"
)
source = {
"type": "geojson",
"data": "https://docs.maptiler.com/sdk-js/assets/Mean_age_of_women_at_first_marriage_in_2019.geojson",
}
m.add_source("countries", source)
layer = {
"id": "eu-countries",
"source": "countries",
"type": "fill-extrusion",
"paint": {
"fill-extrusion-color": [
"interpolate",
["linear"],
["get", "age"],
23.0,
"#fff5eb",
24.0,
"#fee6ce",
25.0,
"#fdd0a2",
26.0,
"#fdae6b",
27.0,
"#fd8d3c",
28.0,
"#f16913",
29.0,
"#d94801",
30.0,
"#8c2d04",
],
"fill-extrusion-opacity": 1,
"fill-extrusion-height": ["*", ["get", "age"], 5000],
},
}
first_symbol_layer_id = m.find_first_symbol_layer()["id"]
m.add_layer(layer, first_symbol_layer_id)
m.add_layer_control()
m
m = leafmap.Map(
center=[19.43, 49.49], zoom=3, pitch=60, style="basic", projection="globe"
)
source = {
"type": "geojson",
"data": "https://docs.maptiler.com/sdk-js/assets/Mean_age_of_women_at_first_marriage_in_2019.geojson",
}
m.add_source("countries", source)
layer = {
"id": "eu-countries",
"source": "countries",
"type": "fill-extrusion",
"paint": {
"fill-extrusion-color": [
"interpolate",
["linear"],
["get", "age"],
23.0,
"#fff5eb",
24.0,
"#fee6ce",
25.0,
"#fdd0a2",
26.0,
"#fdae6b",
27.0,
"#fd8d3c",
28.0,
"#f16913",
29.0,
"#d94801",
30.0,
"#8c2d04",
],
"fill-extrusion-opacity": 1,
"fill-extrusion-height": ["*", ["get", "age"], 5000],
},
}
first_symbol_layer_id = m.find_first_symbol_layer()["id"]
m.add_layer(layer, first_symbol_layer_id)
m.add_layer_control()
m
Failed to retrieve the MapTiler style. Defaulting to OpenFreeMap 'liberty' style.
In [8]:
Copied!
data = "https://github.com/opengeos/datasets/releases/download/vector/countries.geojson"
data = "https://github.com/opengeos/datasets/releases/download/vector/countries.geojson"
In [9]:
Copied!
m = leafmap.Map(style="liberty", projection="globe")
first_symbol_id = m.find_first_symbol_layer()["id"]
m.add_data(
data,
column="POP_EST",
scheme="Quantiles",
cmap="Blues",
legend_title="Population",
name="Population",
before_id=first_symbol_id,
extrude=True,
scale_factor=1000,
)
m.add_layer_control()
m
m = leafmap.Map(style="liberty", projection="globe")
first_symbol_id = m.find_first_symbol_layer()["id"]
m.add_data(
data,
column="POP_EST",
scheme="Quantiles",
cmap="Blues",
legend_title="Population",
name="Population",
before_id=first_symbol_id,
extrude=True,
scale_factor=1000,
)
m.add_layer_control()
m
Google Earth Engine¶
In [10]:
Copied!
m = leafmap.Map(style="3d-terrain", projection="globe")
m.add_ee_layer(asset_id="ESA/WorldCover/v200", opacity=0.5)
m.add_legend(builtin_legend="ESA_WorldCover", title="ESA Landcover")
m.add_overture_3d_buildings()
m.add_layer_control()
m
m = leafmap.Map(style="3d-terrain", projection="globe")
m.add_ee_layer(asset_id="ESA/WorldCover/v200", opacity=0.5)
m.add_legend(builtin_legend="ESA_WorldCover", title="ESA Landcover")
m.add_overture_3d_buildings()
m.add_layer_control()
m
An API key is required to use the 3D terrain feature.