import ipyleaflet as ipy
import geopandas
import json
m = ipy.Map(center=(52.3, 8.0), zoom=3, basemap=ipy.basemaps.Esri.WorldTopoMap)
countries = geopandas.read_file(geopandas.datasets.get_path("naturalearth_lowres"))
cities = geopandas.read_file(geopandas.datasets.get_path("naturalearth_cities"))
rivers = geopandas.read_file(
"https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/physical/ne_10m_rivers_lake_centerlines.zip"
)
countries.head()
geo_data = ipy.GeoData(
geo_dataframe=countries,
style={
"color": "black",
"fillColor": "#3366cc",
"opacity": 0.05,
"weight": 1.9,
"dashArray": "2",
"fillOpacity": 0.6,
},
hover_style={"fillColor": "red", "fillOpacity": 0.2},
name="Countries",
)
m.add(geo_data)
m.add(ipy.LayersControl())
m
rivers_data = ipy.GeoData(
geo_dataframe=rivers,
style={
"color": "purple",
"opacity": 3,
"weight": 1.9,
"dashArray": "2",
"fillOpacity": 0.6,
},
hover_style={"fillColor": "red", "fillOpacity": 0.2},
name="Rivers",
)
m.add(rivers_data)
# geo_data.geo_dataframe = cities
# m.remove_layer(geo_data)
africa_countries = countries[countries["continent"] == "Africa"]
africa_countries.head()
africa_data = ipy.GeoData(
geo_dataframe=africa_countries,
style={
"color": "black",
"fillColor": "red",
"opacity": 7,
"weight": 1.9,
"dashArray": "7",
"fillOpacity": 0.2,
},
hover_style={"fillColor": "grey", "fillOpacity": 0.6},
name="Africa",
)
m.add(africa_data)
m
# m.remove_layer(africa_data)
m.add(ipy.FullScreenControl())