Drive a lonboard layer’s filter_range
from a RangeSlider (uses the layer’s DataFilterExtension).
Import¶
from manywidgets.lonboard import FilterBinderExample¶
from lonboard import Map, ScatterplotLayer
from lonboard.layer_extension import DataFilterExtension
from manywidgets import RangeSlider, Column
from manywidgets.lonboard import FilterBinder
layer = ScatterplotLayer.from_geopandas(
gdf,
extensions=[DataFilterExtension(filter_size=1)],
get_filter_value=values, # one float per row
filter_range=(lo, hi),
)
m = Map(layer, basemap=None)
slider = RangeSlider(min=lo, max=hi, low=lo, high=hi)
binder = FilterBinder(slider, layer) # slider.low/high -> layer.filter_range
Column(slider, binder, m)API¶
| Trait | Type | Default | Description |
|---|---|---|---|
source | Instance | — | The slider providing low/high values. |
layer | Union | — | A single lonboard layer, or a list of layers, to filter. |
low_field | Unicode | 'low' | Source trait for the low bound. |
high_field | Unicode | 'high' | Source trait for the high bound. |
filter_field | Unicode | 'filter_range' | Layer trait to write [low, high] to. |
label | Unicode | '' | Optional status label. |
widget_id | Unicode | '' | Stable unique id used for cross-widget linking (auto-assigned). |
For single-ended filtering, pass a Slider and set low_field=high_field="value".
Use seconds (not milliseconds) for time filters (see the
lonboard guide).