Skip to content



Bases: BaseLayer

The BitmapLayer renders a bitmap (e.g. PNG, JPEG, or WebP) at specified boundaries.


from lonboard import Map, BitmapLayer

layer = BitmapLayer(
    bounds=[-122.5190, 37.7045, -122.355, 37.829]
m = Map(layer)

auto_highlight class-attribute instance-attribute

auto_highlight = tag(sync=True)

When true, the current object pointed to by the mouse pointer (when hovered over) is highlighted with highlightColor.

Requires pickable to be True.

  • Type: bool
  • Default: False

bounds class-attribute instance-attribute

bounds = tag(sync=True)

The bounds of the image.

Supported formats:

- Coordinates of the bounding box of the bitmap `[left, bottom, right, top]`
- Coordinates of four corners of the bitmap, should follow the sequence of
  `[[left, bottom], [left, top], [right, top], [right, bottom]]`.

desaturate class-attribute instance-attribute

desaturate = tag(sync=True)

The desaturation of the bitmap. Between [0, 1].

  • Type: float, optional
  • Default: 0

extensions class-attribute instance-attribute

extensions = tag(sync=True, **widget_serialization)

A list of layer extension objects to add additional features to a layer.

image class-attribute instance-attribute

image = tag(sync=True)

The URL to an image to display.

  • Type: str

opacity class-attribute instance-attribute

opacity = tag(sync=True)

The opacity of the layer.

  • Type: float. Must range between 0 and 1.
  • Default: 1

pickable class-attribute instance-attribute

pickable = tag(sync=True)

Whether the layer responds to mouse pointer picking events.

This must be set to True for tooltips and other interactive elements to be available. This can also be used to only allow picking on specific layers within a map instance.

Note that picking has some performance overhead in rendering. To get the absolute best rendering performance with large data (at the cost of removing interactivity), set this to False.

  • Type: bool
  • Default: True

selected_index class-attribute instance-attribute

selected_index = tag(sync=True)

The positional index of the most-recently clicked on row of data.

You can use this to access the full row of data from a GeoDataFrame


Setting a value here from Python will do nothing. This attribute only exists to be updated from JavaScript on a map click. Note that pickable must be True (the default) on this layer for the JavaScript onClick handler to work; if pickable is set to False, selected_index will never update.

Note that you can use observe to call a function whenever a new value is received from JavaScript. Refer here for an example.

tint_color class-attribute instance-attribute

tint_color = List(
    Float(), default_value=None, allow_none=True, minlen=3, maxlen=4

The color to tint the bitmap by, in [r, g, b].

  • Type: List[float], optional
  • Default: [255, 255, 255]

transparent_color class-attribute instance-attribute

transparent_color = List(
    Float(), default_value=None, allow_none=True, minlen=3, maxlen=4

The color to use for transparent pixels, in [r, g, b, a].

  • Type: List[float], optional
  • Default: [0, 0, 0, 0]

visible class-attribute instance-attribute

visible = tag(sync=True)

Whether the layer is visible.

Under most circumstances, using the visible attribute to control the visibility of layers is recommended over removing/adding the layer from the Map.layers list.

In particular, toggling the visible attribute will persist the layer on the JavaScript side, while removing/adding the layer from the Map.layers list will re-download and re-render from scratch.

  • Type: bool
  • Default: True