Map#

Example#

from ipyleaflet import Map, basemaps, basemap_to_tiles

m = Map(
    basemap=basemap_to_tiles(basemaps.NASAGIBS.ModisTerraTrueColorCR, "2017-04-08"),
    center=(52.204793, 360.121558),
    zoom=4
)

m

Usage#

You can find the list of available basemaps in the Basemaps page.

You can add multiple layers and controls to the map, using the add methods. All those layers and controls are widgets themselves. So you can dynamically update their attributes from Python or by interacting with the map on the page (see Usage)

from ipyleaflet import Map, Marker, basemaps, basemap_to_tiles

m = Map(
    basemap=basemap_to_tiles(basemaps.NASAGIBS.ModisTerraTrueColorCR, "2017-04-08"),
    center=(52.204793, 360.121558),
    zoom=4
)

m.add(Marker(location=(52.204793, 360.121558)))

m

As a Jupyter interactive widget, the layout of the Map object is specified by a Layout attribute. See Layout and Styling of Jupyter widgets for details.

from ipyleaflet import Map, basemaps, basemap_to_tiles
from ipywidgets import Layout

m = Map(
    basemap=basemap_to_tiles(basemaps.NASAGIBS.ModisTerraTrueColorCR, "2017-04-08"),
    center=(52.204793, 360.121558),
    zoom=4,
    layout=Layout(width='80%', height='500px')
)

m.add(Marker(location=(52.204793, 360.121558)))

m

You can use multiple basemaps my manually creating TileLayer objects and passing them to the Map constructor. (see TileLayer Usage)

Save to HTML#

You can save the Map and all its layers and controls to an HTML page using the save method:

m.save('my_map.html', title='My Map')

Note

The saved file is a static HTML page, so there is no possible interaction with Python anymore. This means that all the Python callbacks you defined (e.g. on marker move) cannot be executed. If you want to serve the Map widget to an HTML page while keeping a Python kernel alive on the server, you might want to look at Voilà.

Attributes and methods#

class ipyleaflet.Map(**kwargs: Any)[source]#

Map class.

The Map class is the main widget in ipyleaflet.

layers#

The list of layers that are currently on the map.

Type:

list of Layer instances

controls#

The list of controls that are currently on the map.

Type:

list of Control instances

center#

The current center of the map.

Type:

list, default [0, 0]

zoom#

The current zoom value of the map.

Type:

float, default 12

max_zoom#

Maximal zoom value.

Type:

float, default None

min_zoom#

Minimal zoom value.

Type:

float, default None

zoom_snap#

Forces the map’s zoom level to always be a multiple of this.

Type:

float, default 1

zoom_delta#

Controls how much the map’s zoom level will change after pressing + or - on the keyboard, or using the zoom controls.

Type:

float, default 1

crs#

Coordinate reference system, which can be ‘Earth’, ‘EPSG3395’, ‘EPSG3857’, ‘EPSG4326’, ‘Base’, ‘Simple’ or user defined projection.

Type:

projection, default projections.EPSG3857

dragging#

Whether the map be draggable with mouse/touch or not.

Type:

boolean, default True

touch_zoom#

Whether the map can be zoomed by touch-dragging with two fingers on mobile.

Type:

boolean, default True

scroll_wheel_zoom#

Whether the map can be zoomed by using the mouse wheel.

Type:

boolean,default False

double_click_zoom#

Whether the map can be zoomed in by double clicking on it and zoomed out by double clicking while holding shift.

Type:

boolean, default True

box_zoom#

Whether the map can be zoomed to a rectangular area specified by dragging the mouse while pressing the shift key

Type:

boolean, default True

tap#

Enables mobile hacks for supporting instant taps.

Type:

boolean, default True

tap_tolerance#

The max number of pixels a user can shift his finger during touch for it to be considered a valid tap.

Type:

int, default 15

world_copy_jump#

With this option enabled, the map tracks when you pan to another “copy” of the world and seamlessly jumps to.

Type:

boolean, default False

close_popup_on_click#

Set it to False if you don’t want popups to close when user clicks the map.

Type:

boolean, default True

bounce_at_zoom_limits#

Set it to False if you don’t want the map to zoom beyond min/max zoom and then bounce back when pinch-zooming.

Type:

boolean, default True

keyboard#

Makes the map focusable and allows users to navigate the map with keyboard arrows and +/- keys.

Type:

booelan, default True

keyboard_pan_offset#
Type:

int, default 80

keyboard_zoom_offset#
Type:

int, default 1

inertia#

If enabled, panning of the map will have an inertia effect.

Type:

boolean, default True

inertia_deceleration#

The rate with which the inertial movement slows down, in pixels/second².

Type:

float, default 3000

inertia_max_speed#

Max speed of the inertial movement, in pixels/second.

Type:

float, default 1500

zoom_control#
Type:

boolean, default True

attribution_control#
Type:

boolean, default True

zoom_animation_threshold#
Type:

int, default 4

add(item, index=None)[source]#

Add an item on the map: either a layer or a control.

Parameters:
  • item (Layer or Control instance) – The layer or control to add.

  • index (int) – The index to insert a Layer. If not specified, the layer is added to the end (on top).

add_control(control)[source]#

Add a control on the map.

Deprecated since version 0.17.0: Use add method instead.

Parameters:

control (Control instance) – The new control to add.

add_layer(layer)[source]#

Add a layer on the map.

Deprecated since version 0.17.0: Use add method instead.

Parameters:

layer (Layer instance) – The new layer to add.

clear()[source]#

Clear all layers and controls.

clear_controls()[source]#

Remove all controls from the map.

Deprecated since version 0.17.0: Use clear method instead.

clear_layers()[source]#

Remove all layers from the map.

Deprecated since version 0.17.0: Use add method instead.

fit_bounds(bounds)[source]#

Sets a map view that contains the given geographical bounds with the maximum zoom level possible.

Parameters:

bounds (list of lists) – The lat/lon bounds in the form [[south, west], [north, east]].

remove(item)[source]#

Remove an item from the map : either a layer or a control.

Parameters:

item (Layer or Control instance) – The layer or control to remove.

remove_control(control)[source]#

Remove a control from the map.

Deprecated since version 0.17.0: Use remove method instead.

Parameters:

control (Control instance) – The control to remove.

remove_layer(rm_layer)[source]#

Remove a layer from the map.

Deprecated since version 0.17.0: Use remove method instead.

Parameters:

layer (Layer instance) – The layer to remove.

save(outfile, **kwargs)[source]#

Save the Map to an .html file.

Parameters:
  • outfile (str or file-like object) – The file to write the HTML output to.

  • kwargs (keyword-arguments) – Extra parameters to pass to the ipywidgets.embed.embed_minimal_html function.

substitute(old, new)[source]#

Replace an item (layer or control) with another one on the map.

Parameters:
  • old (Layer or control instance) – The old layer or control to remove.

  • new (Layer or control instance) – The new layer or control to add.

substitute_layer(old, new)[source]#

Replace a layer with another one on the map.

Deprecated since version 0.17.0: Use substitute method instead.

Parameters:
  • old (Layer instance) – The old layer to remove.

  • new (Layer instance) – The new layer to add.