class_docstr: <<< Map >>>
  
  Map are mainly used for visualization of geographic area data.
code: def add(
      self,
      series_name: str,
      data_pair: types.Sequence[
          types.Union[types.Sequence, opts.MapItem, dict]
      ],
      maptype: str = "china",
      *,
      is_roam: bool = True,
      center: types.Optional[types.Sequence] = None,
      aspect_scale: types.Numeric = 0.75,
      bounding_coords: types.Optional[
          types.Sequence[types.Numeric]
      ] = None,
      min_scale_limit: types.Optional[types.Numeric] = None,
      max_scale_limit: types.Optional[types.Numeric] = None,
      name_property: str = "name",
      selected_mode: types.Union[bool, str] = False,
      zoom: types.Optional[types.Numeric] = 1,
      name_map: types.Optional[dict] = None,
      symbol: types.Optional[str] = None,
      map_value_calculation: str = "sum",
      is_map_symbol_show: bool = True,
      z_level: types.Numeric = 0,
      z: types.Numeric = 2,
      pos_left: types.Optional[types.Union[str, types.Numeric]] = None,
      pos_top: types.Optional[types.Union[str, types.Numeric]] = None,
      pos_right: types.Optional[types.Union[str, types.Numeric]] = None,
      pos_bottom: types.Optional[
          types.Union[str, types.Numeric]
      ] = None,
      geo_index: types.Optional[types.Numeric] = None,
      series_layout_by: str = "column",
      dataset_index: types.Optional[types.Numeric] = 0,
      layout_center: types.Optional[types.Sequence[str]] = None,
      layout_size: types.Union[str, types.Numeric] = None,
      label_opts: types.Label = opts.LabelOpts(),
      tooltip_opts: types.Tooltip = None,
      itemstyle_opts: types.ItemStyle = None,
      emphasis_label_opts: types.Label = None,
      emphasis_itemstyle_opts: types.ItemStyle = None,
  ):
      self.js_dependencies.add(maptype)
      self._geo_json_name = maptype
  
      if isinstance(data_pair[0], opts.MapItem):
          data = data_pair
      else:
          data = [{"name": n, "value": v} for n, v in data_pair]
  
      scale_limit: types.Optional[dict] = {
          "min": min_scale_limit,
          "max": max_scale_limit,
      }
      if min_scale_limit is None and max_scale_limit is None:
          scale_limit = None
  
      self._append_legend(series_name)
      self.options.get("series").append(
          {
              "type": ChartType.MAP,
              "name": series_name,
              "symbol": symbol,
              "label": label_opts,
              "map": maptype,
              "data": data,
              "roam": is_roam,
              "aspectScale": aspect_scale,
              "boundingCoords": bounding_coords,
              "scaleLimit": scale_limit,
              "nameProperty": name_property,
              "selectedMode": selected_mode,
              "center": center,
              "zoom": zoom,
              "nameMap": name_map,
              "zlevel": z_level,
              "z": z,
              "left": pos_left,
              "top": pos_top,
              "right": pos_right,
              "bottom": pos_bottom,
              "geoIndex": geo_index,
              "seriesLayoutBy": series_layout_by,
              "datasetIndex": dataset_index,
              "mapValueCalculation": map_value_calculation,
              "showLegendSymbol": is_map_symbol_show,
              "layoutCenter": layout_center,
              "layoutSize": layout_size,
              "tooltip": tooltip_opts,
              "itemStyle": itemstyle_opts,
              "emphasis": {
                  "label": emphasis_label_opts,
                  "itemStyle": emphasis_itemstyle_opts,
              },
          }
      )
      return self
  
file_path: pyecharts/pyecharts/charts/basic_charts/map.py
imports: from ...None import options
  from ...None import types
  from ...charts.chart import Chart
  from ...globals import ChartType
label_desc: Use image node_id 1 for calling the MapMixin obj's underlying member method code with example usage: obj.add(series_name, data_pair, maptype) and returns: self