code: def plot(tile_source: TileSource):
      # set to roughly extent of points
      x_range = Range1d(
          start=airports["x"].min() - 10000,
          end=airports["x"].max() + 10000,
          bounds=None,
      )
      y_range = Range1d(
          start=airports["y"].min() - 10000,
          end=airports["y"].max() + 10000,
          bounds=None,
      )
  
      # create plot and add tools
      p = figure(
          tools="hover,wheel_zoom,pan,reset",
          x_range=x_range,
          y_range=y_range,
          title=title,
          tooltips=[("Name", "@name"), ("Elevation", "@elevation (m)")],
          width=400,
          height=400,
      )
      p.axis.visible = False
      p.add_tile(tile_source)
  
      # create point glyphs
      p.scatter(
          x="x",
          y="y",
          size=10,
          fill_color="#F46B42",
          line_color="white",
          line_width=2,
          source=airports,
      )
      return p
  
imports: from bokeh.layouts import column, gridplot
  from bokeh.models import Div, Range1d, TileSource, WMTSTileSource
  from bokeh.plotting import figure, show
  from bokeh.sampledata.airports import data
label_desc: Use image node_id 1 for calling a global function with example usage: plot(tile_source) and returns: p