Arc layer

Add Arc Layer
Uncomment the following line to install leafmap if needed.
| import pandas as pd
import geopandas as gpd
import ipywidgets as widgets
import leafmap.maplibregl as leafmap
|
| route_url = (
"https://github.com/opengeos/datasets/releases/download/world/airport_routes.csv"
)
df = pd.read_csv(route_url)
df.head()
|
| airport_url = (
"https://github.com/opengeos/datasets/releases/download/world/airports.geojson"
)
gdf = gpd.read_file(airport_url)
gdf.head()
|
| m = leafmap.Map(style="liberty")
m.add_gdf(gdf, name="Airports", fit_bounds=False)
container = m.create_container()
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 | dropdown = widgets.Dropdown(
description="Airport", options=df["src_airport"].unique().tolist(), value=None
)
map_widget = widgets.VBox([m.container])
main_widget = widgets.VBox([dropdown, map_widget])
def on_airport_change(change):
if change["new"]:
airport = change["new"]
selected_df = df[df["src_airport"] == airport]
dst_airports = selected_df["dst_airport"].unique().tolist() + [airport]
selected_gdf = gdf[gdf["id"].isin(dst_airports)]
m = leafmap.Map(style="liberty")
m.add_basemap(
"Esri.WorldImagery", visible=False, before_id=m.first_symbol_layer_id
)
m.add_gdf(selected_gdf, name="Airports", fit_bounds=False)
m.add_arc_layer(
selected_df,
src_lon="src_lon",
src_lat="src_lat",
dst_lon="dst_lon",
dst_lat="dst_lat",
)
m.create_container()
map_widget.children = [m.container]
dropdown.observe(on_airport_change, names="value")
main_widget
|
