code: def geom_livemap(
      *,
      location=None,
      zoom=None,
      projection=None,
      tiles=None,
      show_coord_pick_tools=None,
      data_size_zoomin=None,
      const_size_zoomin=None,
      **other_args,
  ):
      """
      Display an interactive map.
  
      Parameters
      ----------
      location : list
          Initial position of the map. If not set, display the United States.
          There are [lon1, lat1, lon2, lat2,..., lonN, latN]:
          lon1, lon2,..., lonN are longitudes in degrees (positive in the Eastern hemisphere);
          lat1, lat2,..., latN are latitudes in degrees (positive in the Northern hemisphere).
      zoom : int
          Zoom of the map in the range 1 - 15.
      projection : str, default='epsg3857'
          The map projection. There are: 'epsg3857' for Mercator projection;
          'epsg4326' for Equirectangular projection. `projection` only works
          with vector map tiles (i.e. Lets-Plot map tiles).
      tiles : str
          Tiles provider, either as a string - URL for a standard raster ZXY tile provider
          with {z}, {x} and {y} wildcards (e.g. 'http://my.tile.com/{z}/{x}/{y}.png')
          or the result of a call to a `maptiles_xxx()` functions.
      show_coord_pick_tools : bool, default=False
          Show buttons "copy location" and "draw geometry".
      data_size_zoomin : int, default=0
          Control how zooming-in of the map widget increases size of geometry objects (circles, lines etc.) on map
          when the size is set by means of mapping between the data and the `size` aesthetic.
          `0` - size never increases;
          `-1` - size will be increasing without limits;
          `n` - a number of zooming-in steps (counting from the initial state of the map widget)
          when size of objects will be increasing. Farther zooming will no longer affect the size.
      const_size_zoomin : int, default=-1
          Control how zooming-in of the map widget increases size of geometry objects (circles, lines etc.) on map
          when the size is not linked to a data (i.e. constant size).
          `0` - size never increases;
          `-1` - size will be increasing without limits;
          `n` - a number of zooming-in steps (counting from the initial state of the map widget)
          when size of objects will be increasing. Farther zooming will no longer affect the size.
      other_args
          Other arguments passed on to the layer.
  
      Returns
      -------
      `LayerSpec`
          Geom object specification.
  
      Notes
      -----
      `geom_livemap()` draws a map, which can be dragged and zoomed.
  
      Examples
      --------
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 3
  
          from lets_plot import *
          LetsPlot.setup_html()
          ggplot() + geom_livemap()
  
      |
  
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 9
  
          from lets_plot import *
          LetsPlot.setup_html()
          data = {
              'city': ['New York City', 'Prague'],
              'lon': [-73.7997, 14.418540],
              'lat': [40.6408, 50.073658],
          }
          ggplot(data, aes(x='lon', y='lat')) + \\
              geom_livemap(projection='epsg4326', tiles=maptiles_lets_plot(theme='dark')) + \\
              geom_path(color='white', geodesic=True) + \\
              geom_point(color='white', tooltips=layer_tooltips().line('@city')) + \\
              ggtitle("The shortest path between New York and Prague")
  
      """
      if "symbol" in other_args:
          print(
              "WARN: The parameter 'symbol' is no longer supported. "
              "Use separate geom_point() or geom_pie() geometry layers to display markers on the map."
          )
          other_args.pop("symbol")
  
      deprecated_params = set.intersection(
          {
              "data",
              "mapping",
              "map",
              "map_join",
              "ontop",
              "stat",
              "position",
              "show_legend",
              "sampling",
              "tooltips",
          },
          other_args,
      )
      if len(deprecated_params) > 0:
          print(
              f"WARN: These parameters are not supported and will be ignored: {str(deprecated_params):s}. "
              "Specify a separate geometry layer to display data on the livemap."
          )
  
      for param in deprecated_params:
          other_args.pop(param)
  
      if location is not None:
          location = _prepare_location(location)
  
      tiles = _prepare_tiles(tiles)
      geocoding = _prepare_geocoding()
  
      return _geom(
          "livemap",
          mapping=None,
          data=None,
          stat=None,
          position=None,
          show_legend=None,
          sampling=None,
          tooltips=None,
          map=None,
          map_join=None,
          location=location,
          zoom=zoom,
          projection=projection,
          tiles=tiles,
          geocoding=geocoding,
          show_coord_pick_tools=show_coord_pick_tools,
          data_size_zoomin=data_size_zoomin,
          const_size_zoomin=const_size_zoomin,
          **other_args,
      )
  
file_path: lets-plot/python-package/lets_plot/plot/geom_livemap_.py
imports: from enum import Enum
  from typing import Union, Optional, List
  from lets_plot._global_settings import MAPTILES_KIND, MAPTILES_URL, MAPTILES_THEME, MAPTILES_ATTRIBUTION, GEOCODING_PROVIDER_URL, GEOCODING_ROUTE, TILES_RASTER_ZXY, TILES_VECTOR_LETS_PLOT, MAPTILES_MIN_ZOOM, MAPTILES_MAX_ZOOM, TILES_SOLID, MAPTILES_SOLID_FILL_COLOR, TILES_CHESSBOARD
  from lets_plot._global_settings import has_global_value, get_global_val
  from .geom import _geom
label_desc: Use image node_id 1 for calling a global function with example usage: geom_livemap() and returns: _geom