I need ur help. I try to plot a route on a map. The dataset consists of lon and lat. I want to include only a part of the route with a interactive solution like a RangeSlider. For example only the 2th and 4th index. Unfortunately I do not know how to set the callback function properly. How can I link the callback to my slider and my plot?
Here is my code:
from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource, GMapOptions, CustomJS
from bokeh.plotting import gmap, ColumnDataSource, figure
from bokeh.layouts import column, row
from bokeh.models.widgets import RangeSlider
import numpy as np
lon = [48.7886, 48.7887, 48.7888, 48.7889, 48.789]
lat = [8.92, 8.921, 8.922, 8.923, 8.924]
source = ColumnDataSource(data=dict(x=lon, y=lat))
map_options = GMapOptions(lat=48.7886, lng=8.92, map_type="satellite", zoom=13)
p = gmap("MY_API_KEY", map_options, title="Trajectory Map")
p.line('y', 'x', source=source, line_width=2)
range_slider = RangeSlider(title="Data Range Slider: ", start=0, end=3, value=(0, 3), step=1)
callback = CustomJS(args=dict(source=source, sample=range_slider), code="""
WHAT DO I NEED IN HERE? HOW CAN I CHANGE THE OUTPUT WITHOUT CHANGING THE SOURCE?
"""
)
range_slider.js_on_change('value', callback)
layout = row(
p, range_slider)
output_file("diag_plot_bike_data.html")
show(layout)
I found a solution for all wondering: