class_docstr: 3D map
code: def add(
      self,
      series_name: str,
      data_pair: types.Sequence,
      *,
      type_: ChartType = None,
      maptype: str = "china",
      is_map_symbol_show: bool = True,
      grid_3d_index: types.Numeric = 0,
      geo_3d_index: types.Numeric = 0,
      globe_index: types.Numeric = 0,
      bar_size: types.Optional[types.Numeric] = None,
      bevel_size: types.Numeric = 0,
      bevel_smoothness: types.Numeric = 2,
      stack: types.Optional[str] = None,
      min_height: types.Numeric = 2,
      symbol: str = "circle",
      symbol_size: types.Union[
          types.Numeric, types.Sequence, types.JSFunc
      ] = 10,
      blend_mode: str = "source-over",
      is_polyline: bool = False,
      effect: types.Lines3DEffect = None,
      linestyle_opts: types.LineStyle = opts.LineStyleOpts(),
      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,
      shading: types.Optional[str] = None,
      realistic_material_opts: types.Optional[
          types.Map3DRealisticMaterial
      ] = None,
      lambert_material_opts: types.Optional[
          types.Map3DLambertMaterial
      ] = None,
      color_material_opts: types.Optional[
          types.Map3DColorMaterial
      ] = None,
      zlevel: types.Numeric = -10,
      is_silent: bool = False,
      is_animation: bool = True,
      animation_duration_update: types.Numeric = 100,
      animation_easing_update: types.Numeric = "cubicOut",
  ):
      if type_ != ChartType.LINES3D:
          data = [{"name": n, "value": v} for n, v in data_pair]
      else:
          data = data_pair
      self._append_legend(series_name)
      if type_ is None or type_ == ChartType.MAP3D:
          self.options.get("series").append(
              {
                  "type": ChartType.MAP3D,
                  "name": series_name,
                  "map": maptype,
                  "coordinateSystem": "geo3D",
                  "label": label_opts,
                  "data": data,
                  "itemStyle": itemstyle_opts,
                  "showLegendSymbol": is_map_symbol_show,
                  "tooltip": tooltip_opts,
                  "emphasis": {
                      "label": emphasis_label_opts,
                      "itemStyle": emphasis_itemstyle_opts,
                  },
              }
          )
      elif type_ == ChartType.BAR3D:
          self.options.get("series").append(
              {
                  "type": type_,
                  "name": series_name,
                  "coordinateSystem": "geo3D",
                  "grid3DIndex": grid_3d_index,
                  "geo3DIndex": geo_3d_index,
                  "globeIndex": globe_index,
                  "barSize": bar_size,
                  "bevelSize": bevel_size,
                  "bevelSmoothness": bevel_smoothness,
                  "stack": stack,
                  "minHeight": min_height,
                  "label": label_opts,
                  "itemStyle": itemstyle_opts,
                  "emphasis": {
                      "label": emphasis_label_opts,
                      "itemStyle": emphasis_itemstyle_opts,
                  },
                  "data": data,
                  "shading": shading,
                  "realisticMaterial": realistic_material_opts,
                  "lambertMaterial": lambert_material_opts,
                  "colorMaterial": color_material_opts,
                  "zlevel": zlevel,
                  "silent": is_silent,
                  "animation": is_animation,
                  "animationDurationUpdate": animation_duration_update,
                  "animationEasingUpdate": animation_easing_update,
              }
          )
      elif type_ == ChartType.SCATTER3D:
          self.options.get("series").append(
              {
                  "type": type_,
                  "name": series_name,
                  "coordinateSystem": "geo3D",
                  "grid3DIndex": grid_3d_index,
                  "geo3DIndex": geo_3d_index,
                  "globeIndex": globe_index,
                  "symbol": symbol,
                  "symbolSize": symbol_size,
                  "label": label_opts,
                  "itemStyle": itemstyle_opts,
                  "emphasis": {
                      "label": emphasis_label_opts,
                      "itemStyle": emphasis_itemstyle_opts,
                  },
                  "data": data,
                  "blendMode": blend_mode,
                  "zlevel": zlevel,
                  "silent": is_silent,
                  "animation": is_animation,
                  "animationDurationUpdate": animation_duration_update,
                  "animationEasingUpdate": animation_easing_update,
              }
          )
      elif type_ == ChartType.LINE3D:
          self.options.get("series").append(
              {
                  "type": type_,
                  "name": series_name,
                  "coordinateSystem": "geo3D",
                  "grid3DIndex": grid_3d_index,
                  "lineStyle": linestyle_opts,
                  "data": data,
                  "zlevel": zlevel,
                  "silent": is_silent,
                  "animation": is_animation,
                  "animationDurationUpdate": animation_duration_update,
                  "animationEasingUpdate": animation_easing_update,
              }
          )
      elif type_ == ChartType.LINES3D:
          self.options.get("series").append(
              {
                  "type": type_,
                  "name": series_name,
                  "coordinateSystem": "geo3D",
                  "geo3DIndex": geo_3d_index,
                  "globeIndex": globe_index,
                  "polyline": is_polyline,
                  "effect": effect,
                  "lineStyle": linestyle_opts,
                  "data": data,
                  "blendMode": blend_mode,
                  "zlevel": zlevel,
                  "silent": is_silent,
              }
          )
      return self
  
file_path: pyecharts/pyecharts/charts/three_axis_charts/map3D.py
imports: from ...None import options
  from ...None import types
  from ...charts.chart import Chart3D
  from ...globals import ChartType
  from ...options import InitOpts, RenderOpts
label_desc: Use image node_id 2 for calling the Map3D obj's underlying member method code with example usage: obj.add(series_name, data_pair) and returns: self