code: def _add_backgroundtile(
      p, tile_provider, tile_provider_url, tile_attribution, tile_alpha
  ):
      """Add a background tile to the plot. Either uses predefined Tiles from Bokeh
      (parameter: tile_provider) or user passed a tile_provider_url of the form
      '<url>/{Z}/{X}/{Y}*.png' or '<url>/{Z}/{Y}/{X}*.png'."""
  
      from bokeh.models import WMTSTileSource
  
      if tile_provider_url is not None:
          if (
              "/{Z}/{X}/{Y}" not in tile_provider_url
              and "/{Z}/{Y}/{X}" not in tile_provider_url
          ):
              raise ValueError(
                  "<tile_provider_url> has to be of the form '<url>/{Z}/{X}/{Y}*.png' or <url>/{Z}/{Y}/{X}*.png'."
              )
          if not isinstance(tile_attribution, str):
              raise ValueError("<tile_attribution> has to be a string.")
          t = p.add_tile(
              WMTSTileSource(
                  url=tile_provider_url, attribution=tile_attribution
              )
          )
          t.alpha = tile_alpha
  
      elif tile_provider is not None:
          if not isinstance(tile_provider, str):
              raise ValueError(
                  f"<tile_provider> only accepts the values: {TILE_PROVIDERS}"
              )
          elif _get_background_tile(tile_provider):
              t = p.add_tile(_get_background_tile(tile_provider))
          else:
              raise ValueError(
                  f"<tile_provider> only accepts the values: {TILE_PROVIDERS}"
              )
          t.alpha = tile_alpha
  
      return p
  
file_path: Pandas-Bokeh/pandas_bokeh/geoplot.py
imports: import numbers
  from collections.abc import Hashable, Iterable
  import numpy
  import pandas
  from bokeh.colors import RGB
  from bokeh.models import NumeralTickFormatter, TickFormatter
  from bokeh.tile_providers import get_provider
  from .base import embedded_html
label_desc: Use image node_id 2 for calling a global function with example usage: _add_backgroundtile(p, tile_provider, tile_provider_url, tile_attribution, tile_alpha) and returns: p