text: from plotly.basedatatypes import BaseTraceType as _BaseTraceType
  import copy as _copy
  
  
  class Scattermapbox(_BaseTraceType):
  
      # class properties
      # --------------------
      _parent_path_str = ""
      _path_str = "scattermapbox"
      _valid_props = {
          "below",
          "connectgaps",
          "customdata",
          "customdatasrc",
          "fill",
          "fillcolor",
          "hoverinfo",
          "hoverinfosrc",
          "hoverlabel",
          "hovertemplate",
          "hovertemplatesrc",
          "hovertext",
          "hovertextsrc",
          "ids",
          "idssrc",
          "lat",
          "latsrc",
          "legendgroup",
          "line",
          "lon",
          "lonsrc",
          "marker",
          "meta",
          "metasrc",
          "mode",
          "name",
          "opacity",
          "selected",
          "selectedpoints",
          "showlegend",
          "stream",
          "subplot",
          "text",
          "textfont",
          "textposition",
          "textsrc",
          "texttemplate",
          "texttemplatesrc",
          "type",
          "uid",
          "uirevision",
          "unselected",
          "visible",
      }
  
      # below
      # -----
      @property
      def below(self):
          """
          Determines if this scattermapbox trace's layers are to be
          inserted before the layer with the specified ID. By default,
          scattermapbox layers are inserted above all the base layers. To
          place the scattermapbox layers above every other layer, set
          `below` to "''".
      
          The 'below' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
  
          Returns
          -------
          str
          """
          return self["below"]
  
      @below.setter
      def below(self, val):
          self["below"] = val
  
      # connectgaps
      # -----------
      @property
      def connectgaps(self):
          """
          Determines whether or not gaps (i.e. {nan} or missing values)
          in the provided data arrays are connected.
      
          The 'connectgaps' property must be specified as a bool
          (either True, or False)
  
          Returns
          -------
          bool
          """
          return self["connectgaps"]
  
      @connectgaps.setter
      def connectgaps(self, val):
          self["connectgaps"] = val
  
      # customdata
      # ----------
      @property
      def customdata(self):
          """
          Assigns extra data each datum. This may be useful when
          listening to hover, click and selection events. Note that,
          "scatter" traces also appends customdata items in the markers
          DOM elements
      
          The 'customdata' property is an array that may be specified as a tuple,
          list, numpy array, or pandas Series
  
          Returns
          -------
          numpy.ndarray
          """
          return self["customdata"]
  
      @customdata.setter
      def customdata(self, val):
          self["customdata"] = val
  
      # customdatasrc
      # -------------
      @property
      def customdatasrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  customdata
          .
      
          The 'customdatasrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["customdatasrc"]
  
      @customdatasrc.setter
      def customdatasrc(self, val):
          self["customdatasrc"] = val
  
      # fill
      # ----
      @property
      def fill(self):
          """
          Sets the area to fill with a solid color. Use with `fillcolor`
          if not "none". "toself" connects the endpoints of the trace (or
          each segment of the trace if it has gaps) into a closed shape.
      
          The 'fill' property is an enumeration that may be specified as:
            - One of the following enumeration values:
                  ['none', 'toself']
  
          Returns
          -------
          Any
          """
          return self["fill"]
  
      @fill.setter
      def fill(self, val):
          self["fill"] = val
  
      # fillcolor
      # ---------
      @property
      def fillcolor(self):
          """
          Sets the fill color. Defaults to a half-transparent variant of
          the line color, marker color, or marker line color, whichever
          is available.
      
          The 'fillcolor' property is a color and may be specified as:
            - A hex string (e.g. '#ff0000')
            - An rgb/rgba string (e.g. 'rgb(255,0,0)')
            - An hsl/hsla string (e.g. 'hsl(0,100%,50%)')
            - An hsv/hsva string (e.g. 'hsv(0,100%,100%)')
            - A named CSS color:
                  aliceblue, antiquewhite, aqua, aquamarine, azure,
                  beige, bisque, black, blanchedalmond, blue,
                  blueviolet, brown, burlywood, cadetblue,
                  chartreuse, chocolate, coral, cornflowerblue,
                  cornsilk, crimson, cyan, darkblue, darkcyan,
                  darkgoldenrod, darkgray, darkgrey, darkgreen,
                  darkkhaki, darkmagenta, darkolivegreen, darkorange,
                  darkorchid, darkred, darksalmon, darkseagreen,
                  darkslateblue, darkslategray, darkslategrey,
                  darkturquoise, darkviolet, deeppink, deepskyblue,
                  dimgray, dimgrey, dodgerblue, firebrick,
                  floralwhite, forestgreen, fuchsia, gainsboro,
                  ghostwhite, gold, goldenrod, gray, grey, green,
                  greenyellow, honeydew, hotpink, indianred, indigo,
                  ivory, khaki, lavender, lavenderblush, lawngreen,
                  lemonchiffon, lightblue, lightcoral, lightcyan,
                  lightgoldenrodyellow, lightgray, lightgrey,
                  lightgreen, lightpink, lightsalmon, lightseagreen,
                  lightskyblue, lightslategray, lightslategrey,
                  lightsteelblue, lightyellow, lime, limegreen,
                  linen, magenta, maroon, mediumaquamarine,
                  mediumblue, mediumorchid, mediumpurple,
                  mediumseagreen, mediumslateblue, mediumspringgreen,
                  mediumturquoise, mediumvioletred, midnightblue,
                  mintcream, mistyrose, moccasin, navajowhite, navy,
                  oldlace, olive, olivedrab, orange, orangered,
                  orchid, palegoldenrod, palegreen, paleturquoise,
                  palevioletred, papayawhip, peachpuff, peru, pink,
                  plum, powderblue, purple, red, rosybrown,
                  royalblue, rebeccapurple, saddlebrown, salmon,
                  sandybrown, seagreen, seashell, sienna, silver,
                  skyblue, slateblue, slategray, slategrey, snow,
                  springgreen, steelblue, tan, teal, thistle, tomato,
                  turquoise, violet, wheat, white, whitesmoke,
                  yellow, yellowgreen
  
          Returns
          -------
          str
          """
          return self["fillcolor"]
  
      @fillcolor.setter
      def fillcolor(self, val):
          self["fillcolor"] = val
  
      # hoverinfo
      # ---------
      @property
      def hoverinfo(self):
          """
          Determines which trace information appear on hover. If `none`
          or `skip` are set, no information is displayed upon hovering.
          But, if `none` is set, click and hover events are still fired.
      
          The 'hoverinfo' property is a flaglist and may be specified
          as a string containing:
            - Any combination of ['lon', 'lat', 'text', 'name'] joined with '+' characters
              (e.g. 'lon+lat')
              OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip')
            - A list or array of the above
  
          Returns
          -------
          Any|numpy.ndarray
          """
          return self["hoverinfo"]
  
      @hoverinfo.setter
      def hoverinfo(self, val):
          self["hoverinfo"] = val
  
      # hoverinfosrc
      # ------------
      @property
      def hoverinfosrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  hoverinfo
          .
      
          The 'hoverinfosrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["hoverinfosrc"]
  
      @hoverinfosrc.setter
      def hoverinfosrc(self, val):
          self["hoverinfosrc"] = val
  
      # hoverlabel
      # ----------
      @property
      def hoverlabel(self):
          """
          The 'hoverlabel' property is an instance of Hoverlabel
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Hoverlabel`
            - A dict of string/value properties that will be passed
              to the Hoverlabel constructor
      
              Supported dict properties:
                  
                  align
                      Sets the horizontal alignment of the text
                      content within hover label box. Has an effect
                      only if the hover label text spans more two or
                      more lines
                  alignsrc
                      Sets the source reference on Chart Studio Cloud
                      for  align .
                  bgcolor
                      Sets the background color of the hover labels
                      for this trace
                  bgcolorsrc
                      Sets the source reference on Chart Studio Cloud
                      for  bgcolor .
                  bordercolor
                      Sets the border color of the hover labels for
                      this trace.
                  bordercolorsrc
                      Sets the source reference on Chart Studio Cloud
                      for  bordercolor .
                  font
                      Sets the font used in hover labels.
                  namelength
                      Sets the default length (in number of
                      characters) of the trace name in the hover
                      labels for all traces. -1 shows the whole name
                      regardless of length. 0-3 shows the first 0-3
                      characters, and an integer >3 will show the
                      whole name if it is less than that many
                      characters, but if it is longer, will truncate
                      to `namelength - 3` characters and add an
                      ellipsis.
                  namelengthsrc
                      Sets the source reference on Chart Studio Cloud
                      for  namelength .
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Hoverlabel
          """
          return self["hoverlabel"]
  
      @hoverlabel.setter
      def hoverlabel(self, val):
          self["hoverlabel"] = val
  
      # hovertemplate
      # -------------
      @property
      def hovertemplate(self):
          """
          Template string used for rendering the information that appear
          on hover box. Note that this will override `hoverinfo`.
          Variables are inserted using %{variable}, for example "y: %{y}"
          as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When
          showing info for several points, "xother" will be added to
          those with different x positions from the first point. An
          underscore before or after "(x|y)other" will add a space on
          that side, only when this field is shown. Numbers are formatted
          using d3-format's syntax %{variable:d3-format}, for example
          "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
          reference/blob/master/Formatting.md#d3_format for details on
          the formatting syntax. Dates are formatted using d3-time-
          format's syntax %{variable|d3-time-format}, for example "Day:
          %{2019-01-01|%A}". https://github.com/d3/d3-time-
          format#locale_format for details on the date formatting syntax.
          The variables available in `hovertemplate` are the ones emitted
          as event data described at this link
          https://plotly.com/javascript/plotlyjs-events/#event-data.
          Additionally, every attributes that can be specified per-point
          (the ones that are `arrayOk: true`) are available.  Anything
          contained in tag `<extra>` is displayed in the secondary box,
          for example "<extra>{fullData.name}</extra>". To hide the
          secondary box completely, use an empty tag `<extra></extra>`.
      
          The 'hovertemplate' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
            - A tuple, list, or one-dimensional numpy array of the above
  
          Returns
          -------
          str|numpy.ndarray
          """
          return self["hovertemplate"]
  
      @hovertemplate.setter
      def hovertemplate(self, val):
          self["hovertemplate"] = val
  
      # hovertemplatesrc
      # ----------------
      @property
      def hovertemplatesrc(self):
          """
          Sets the source reference on Chart Studio Cloud for
          hovertemplate .
      
          The 'hovertemplatesrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["hovertemplatesrc"]
  
      @hovertemplatesrc.setter
      def hovertemplatesrc(self, val):
          self["hovertemplatesrc"] = val
  
      # hovertext
      # ---------
      @property
      def hovertext(self):
          """
          Sets hover text elements associated with each (lon,lat) pair If
          a single string, the same string appears over all the data
          points. If an array of string, the items are mapped in order to
          the this trace's (lon,lat) coordinates. To be seen, trace
          `hoverinfo` must contain a "text" flag.
      
          The 'hovertext' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
            - A tuple, list, or one-dimensional numpy array of the above
  
          Returns
          -------
          str|numpy.ndarray
          """
          return self["hovertext"]
  
      @hovertext.setter
      def hovertext(self, val):
          self["hovertext"] = val
  
      # hovertextsrc
      # ------------
      @property
      def hovertextsrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  hovertext
          .
      
          The 'hovertextsrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["hovertextsrc"]
  
      @hovertextsrc.setter
      def hovertextsrc(self, val):
          self["hovertextsrc"] = val
  
      # ids
      # ---
      @property
      def ids(self):
          """
          Assigns id labels to each datum. These ids for object constancy
          of data points during animation. Should be an array of strings,
          not numbers or any other type.
      
          The 'ids' property is an array that may be specified as a tuple,
          list, numpy array, or pandas Series
  
          Returns
          -------
          numpy.ndarray
          """
          return self["ids"]
  
      @ids.setter
      def ids(self, val):
          self["ids"] = val
  
      # idssrc
      # ------
      @property
      def idssrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  ids .
      
          The 'idssrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["idssrc"]
  
      @idssrc.setter
      def idssrc(self, val):
          self["idssrc"] = val
  
      # lat
      # ---
      @property
      def lat(self):
          """
          Sets the latitude coordinates (in degrees North).
      
          The 'lat' property is an array that may be specified as a tuple,
          list, numpy array, or pandas Series
  
          Returns
          -------
          numpy.ndarray
          """
          return self["lat"]
  
      @lat.setter
      def lat(self, val):
          self["lat"] = val
  
      # latsrc
      # ------
      @property
      def latsrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  lat .
      
          The 'latsrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["latsrc"]
  
      @latsrc.setter
      def latsrc(self, val):
          self["latsrc"] = val
  
      # legendgroup
      # -----------
      @property
      def legendgroup(self):
          """
          Sets the legend group for this trace. Traces part of the same
          legend group hide/show at the same time when toggling legend
          items.
      
          The 'legendgroup' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
  
          Returns
          -------
          str
          """
          return self["legendgroup"]
  
      @legendgroup.setter
      def legendgroup(self, val):
          self["legendgroup"] = val
  
      # line
      # ----
      @property
      def line(self):
          """
          The 'line' property is an instance of Line
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Line`
            - A dict of string/value properties that will be passed
              to the Line constructor
      
              Supported dict properties:
                  
                  color
                      Sets the line color.
                  width
                      Sets the line width (in px).
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Line
          """
          return self["line"]
  
      @line.setter
      def line(self, val):
          self["line"] = val
  
      # lon
      # ---
      @property
      def lon(self):
          """
          Sets the longitude coordinates (in degrees East).
      
          The 'lon' property is an array that may be specified as a tuple,
          list, numpy array, or pandas Series
  
          Returns
          -------
          numpy.ndarray
          """
          return self["lon"]
  
      @lon.setter
      def lon(self, val):
          self["lon"] = val
  
      # lonsrc
      # ------
      @property
      def lonsrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  lon .
      
          The 'lonsrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["lonsrc"]
  
      @lonsrc.setter
      def lonsrc(self, val):
          self["lonsrc"] = val
  
      # marker
      # ------
      @property
      def marker(self):
          """
          The 'marker' property is an instance of Marker
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Marker`
            - A dict of string/value properties that will be passed
              to the Marker constructor
      
              Supported dict properties:
                  
                  allowoverlap
                      Flag to draw all symbols, even if they overlap.
                  angle
                      Sets the marker orientation from true North, in
                      degrees clockwise. When using the "auto"
                      default, no rotation would be applied in
                      perspective views which is different from using
                      a zero angle.
                  anglesrc
                      Sets the source reference on Chart Studio Cloud
                      for  angle .
                  autocolorscale
                      Determines whether the colorscale is a default
                      palette (`autocolorscale: true`) or the palette
                      determined by `marker.colorscale`. Has an
                      effect only if in `marker.color`is set to a
                      numerical array. In case `colorscale` is
                      unspecified or `autocolorscale` is true, the
                      default  palette will be chosen according to
                      whether numbers in the `color` array are all
                      positive, all negative or mixed.
                  cauto
                      Determines whether or not the color domain is
                      computed with respect to the input data (here
                      in `marker.color`) or the bounds set in
                      `marker.cmin` and `marker.cmax`  Has an effect
                      only if in `marker.color`is set to a numerical
                      array. Defaults to `false` when `marker.cmin`
                      and `marker.cmax` are set by the user.
                  cmax
                      Sets the upper bound of the color domain. Has
                      an effect only if in `marker.color`is set to a
                      numerical array. Value should have the same
                      units as in `marker.color` and if set,
                      `marker.cmin` must be set as well.
                  cmid
                      Sets the mid-point of the color domain by
                      scaling `marker.cmin` and/or `marker.cmax` to
                      be equidistant to this point. Has an effect
                      only if in `marker.color`is set to a numerical
                      array. Value should have the same units as in
                      `marker.color`. Has no effect when
                      `marker.cauto` is `false`.
                  cmin
                      Sets the lower bound of the color domain. Has
                      an effect only if in `marker.color`is set to a
                      numerical array. Value should have the same
                      units as in `marker.color` and if set,
                      `marker.cmax` must be set as well.
                  color
                      Sets themarkercolor. It accepts either a
                      specific color or an array of numbers that are
                      mapped to the colorscale relative to the max
                      and min values of the array or relative to
                      `marker.cmin` and `marker.cmax` if set.
                  coloraxis
                      Sets a reference to a shared color axis.
                      References to these shared color axes are
                      "coloraxis", "coloraxis2", "coloraxis3", etc.
                      Settings for these shared color axes are set in
                      the layout, under `layout.coloraxis`,
                      `layout.coloraxis2`, etc. Note that multiple
                      color scales can be linked to the same color
                      axis.
                  colorbar
                      :class:`new_plotly.graph_objects.scattermapbox.mark
                      er.ColorBar` instance or dict with compatible
                      properties
                  colorscale
                      Sets the colorscale. Has an effect only if in
                      `marker.color`is set to a numerical array. The
                      colorscale must be an array containing arrays
                      mapping a normalized value to an rgb, rgba,
                      hex, hsl, hsv, or named color string. At
                      minimum, a mapping for the lowest (0) and
                      highest (1) values are required. For example,
                      `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`.
                      To control the bounds of the colorscale in
                      color space, use`marker.cmin` and
                      `marker.cmax`. Alternatively, `colorscale` may
                      be a palette name string of the following list:
                      Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Bl
                      ues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,E
                      arth,Electric,Viridis,Cividis.
                  colorsrc
                      Sets the source reference on Chart Studio Cloud
                      for  color .
                  opacity
                      Sets the marker opacity.
                  opacitysrc
                      Sets the source reference on Chart Studio Cloud
                      for  opacity .
                  reversescale
                      Reverses the color mapping if true. Has an
                      effect only if in `marker.color`is set to a
                      numerical array. If true, `marker.cmin` will
                      correspond to the last color in the array and
                      `marker.cmax` will correspond to the first
                      color.
                  showscale
                      Determines whether or not a colorbar is
                      displayed for this trace. Has an effect only if
                      in `marker.color`is set to a numerical array.
                  size
                      Sets the marker size (in px).
                  sizemin
                      Has an effect only if `marker.size` is set to a
                      numerical array. Sets the minimum size (in px)
                      of the rendered marker points.
                  sizemode
                      Has an effect only if `marker.size` is set to a
                      numerical array. Sets the rule for which the
                      data in `size` is converted to pixels.
                  sizeref
                      Has an effect only if `marker.size` is set to a
                      numerical array. Sets the scale factor used to
                      determine the rendered size of marker points.
                      Use with `sizemin` and `sizemode`.
                  sizesrc
                      Sets the source reference on Chart Studio Cloud
                      for  size .
                  symbol
                      Sets the marker symbol. Full list:
                      https://www.mapbox.com/maki-icons/ Note that
                      the array `marker.color` and `marker.size` are
                      only available for "circle" symbols.
                  symbolsrc
                      Sets the source reference on Chart Studio Cloud
                      for  symbol .
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Marker
          """
          return self["marker"]
  
      @marker.setter
      def marker(self, val):
          self["marker"] = val
  
      # meta
      # ----
      @property
      def meta(self):
          """
          Assigns extra meta information associated with this trace that
          can be used in various text attributes. Attributes such as
          trace `name`, graph, axis and colorbar `title.text`, annotation
          `text` `rangeselector`, `updatemenues` and `sliders` `label`
          text all support `meta`. To access the trace `meta` values in
          an attribute in the same trace, simply use `%{meta[i]}` where
          `i` is the index or key of the `meta` item in question. To
          access trace `meta` in layout attributes, use
          `%{data[n[.meta[i]}` where `i` is the index or key of the
          `meta` and `n` is the trace index.
      
          The 'meta' property accepts values of any type
  
          Returns
          -------
          Any|numpy.ndarray
          """
          return self["meta"]
  
      @meta.setter
      def meta(self, val):
          self["meta"] = val
  
      # metasrc
      # -------
      @property
      def metasrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  meta .
      
          The 'metasrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["metasrc"]
  
      @metasrc.setter
      def metasrc(self, val):
          self["metasrc"] = val
  
      # mode
      # ----
      @property
      def mode(self):
          """
          Determines the drawing mode for this scatter trace. If the
          provided `mode` includes "text" then the `text` elements appear
          at the coordinates. Otherwise, the `text` elements appear on
          hover.
      
          The 'mode' property is a flaglist and may be specified
          as a string containing:
            - Any combination of ['lines', 'markers', 'text'] joined with '+' characters
              (e.g. 'lines+markers')
              OR exactly one of ['none'] (e.g. 'none')
  
          Returns
          -------
          Any
          """
          return self["mode"]
  
      @mode.setter
      def mode(self, val):
          self["mode"] = val
  
      # name
      # ----
      @property
      def name(self):
          """
          Sets the trace name. The trace name appear as the legend item
          and on hover.
      
          The 'name' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
  
          Returns
          -------
          str
          """
          return self["name"]
  
      @name.setter
      def name(self, val):
          self["name"] = val
  
      # opacity
      # -------
      @property
      def opacity(self):
          """
          Sets the opacity of the trace.
      
          The 'opacity' property is a number and may be specified as:
            - An int or float in the interval [0, 1]
  
          Returns
          -------
          int|float
          """
          return self["opacity"]
  
      @opacity.setter
      def opacity(self, val):
          self["opacity"] = val
  
      # selected
      # --------
      @property
      def selected(self):
          """
          The 'selected' property is an instance of Selected
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Selected`
            - A dict of string/value properties that will be passed
              to the Selected constructor
      
              Supported dict properties:
                  
                  marker
                      :class:`new_plotly.graph_objects.scattermapbox.sele
                      cted.Marker` instance or dict with compatible
                      properties
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Selected
          """
          return self["selected"]
  
      @selected.setter
      def selected(self, val):
          self["selected"] = val
  
      # selectedpoints
      # --------------
      @property
      def selectedpoints(self):
          """
          Array containing integer indices of selected points. Has an
          effect only for traces that support selections. Note that an
          empty array means an empty selection where the `unselected` are
          turned on for all points, whereas, any other non-array values
          means no selection all where the `selected` and `unselected`
          styles have no effect.
      
          The 'selectedpoints' property accepts values of any type
  
          Returns
          -------
          Any
          """
          return self["selectedpoints"]
  
      @selectedpoints.setter
      def selectedpoints(self, val):
          self["selectedpoints"] = val
  
      # showlegend
      # ----------
      @property
      def showlegend(self):
          """
          Determines whether or not an item corresponding to this trace
          is shown in the legend.
      
          The 'showlegend' property must be specified as a bool
          (either True, or False)
  
          Returns
          -------
          bool
          """
          return self["showlegend"]
  
      @showlegend.setter
      def showlegend(self, val):
          self["showlegend"] = val
  
      # stream
      # ------
      @property
      def stream(self):
          """
          The 'stream' property is an instance of Stream
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Stream`
            - A dict of string/value properties that will be passed
              to the Stream constructor
      
              Supported dict properties:
                  
                  maxpoints
                      Sets the maximum number of points to keep on
                      the plots from an incoming stream. If
                      `maxpoints` is set to 50, only the newest 50
                      points will be displayed on the plot.
                  token
                      The stream id number links a data trace on a
                      plot with a stream. See https://chart-
                      studio.new_plotly.com/settings for more details.
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Stream
          """
          return self["stream"]
  
      @stream.setter
      def stream(self, val):
          self["stream"] = val
  
      # subplot
      # -------
      @property
      def subplot(self):
          """
          Sets a reference between this trace's data coordinates and a
          mapbox subplot. If "mapbox" (the default value), the data refer
          to `layout.mapbox`. If "mapbox2", the data refer to
          `layout.mapbox2`, and so on.
      
          The 'subplot' property is an identifier of a particular
          subplot, of type 'mapbox', that may be specified as the string 'mapbox'
          optionally followed by an integer >= 1
          (e.g. 'mapbox', 'mapbox1', 'mapbox2', 'mapbox3', etc.)
  
          Returns
          -------
          str
          """
          return self["subplot"]
  
      @subplot.setter
      def subplot(self, val):
          self["subplot"] = val
  
      # text
      # ----
      @property
      def text(self):
          """
          Sets text elements associated with each (lon,lat) pair If a
          single string, the same string appears over all the data
          points. If an array of string, the items are mapped in order to
          the this trace's (lon,lat) coordinates. If trace `hoverinfo`
          contains a "text" flag and "hovertext" is not set, these
          elements will be seen in the hover labels.
      
          The 'text' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
            - A tuple, list, or one-dimensional numpy array of the above
  
          Returns
          -------
          str|numpy.ndarray
          """
          return self["text"]
  
      @text.setter
      def text(self, val):
          self["text"] = val
  
      # textfont
      # --------
      @property
      def textfont(self):
          """
          Sets the icon text font (color=mapbox.layer.paint.text-color,
          size=mapbox.layer.layout.text-size). Has an effect only when
          `type` is set to "symbol".
      
          The 'textfont' property is an instance of Textfont
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Textfont`
            - A dict of string/value properties that will be passed
              to the Textfont constructor
      
              Supported dict properties:
                  
                  color
      
                  family
                      HTML font family - the typeface that will be
                      applied by the web browser. The web browser
                      will only be able to apply a font if it is
                      available on the system which it operates.
                      Provide multiple font families, separated by
                      commas, to indicate the preference in which to
                      apply fonts if they aren't available on the
                      system. The Chart Studio Cloud (at
                      https://chart-studio.plotly.com or on-premise)
                      generates images on a server, where only a
                      select number of fonts are installed and
                      supported. These include "Arial", "Balto",
                      "Courier New", "Droid Sans",, "Droid Serif",
                      "Droid Sans Mono", "Gravitas One", "Old
                      Standard TT", "Open Sans", "Overpass", "PT Sans
                      Narrow", "Raleway", "Times New Roman".
                  size
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Textfont
          """
          return self["textfont"]
  
      @textfont.setter
      def textfont(self, val):
          self["textfont"] = val
  
      # textposition
      # ------------
      @property
      def textposition(self):
          """
          Sets the positions of the `text` elements with respects to the
          (x,y) coordinates.
      
          The 'textposition' property is an enumeration that may be specified as:
            - One of the following enumeration values:
                  ['top left', 'top center', 'top right', 'middle left',
                  'middle center', 'middle right', 'bottom left', 'bottom
                  center', 'bottom right']
  
          Returns
          -------
          Any
          """
          return self["textposition"]
  
      @textposition.setter
      def textposition(self, val):
          self["textposition"] = val
  
      # textsrc
      # -------
      @property
      def textsrc(self):
          """
          Sets the source reference on Chart Studio Cloud for  text .
      
          The 'textsrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["textsrc"]
  
      @textsrc.setter
      def textsrc(self, val):
          self["textsrc"] = val
  
      # texttemplate
      # ------------
      @property
      def texttemplate(self):
          """
          Template string used for rendering the information text that
          appear on points. Note that this will override `textinfo`.
          Variables are inserted using %{variable}, for example "y:
          %{y}". Numbers are formatted using d3-format's syntax
          %{variable:d3-format}, for example "Price: %{y:$.2f}".
          https://github.com/d3/d3-3.x-api-
          reference/blob/master/Formatting.md#d3_format for details on
          the formatting syntax. Dates are formatted using d3-time-
          format's syntax %{variable|d3-time-format}, for example "Day:
          %{2019-01-01|%A}". https://github.com/d3/d3-time-
          format#locale_format for details on the date formatting syntax.
          Every attributes that can be specified per-point (the ones that
          are `arrayOk: true`) are available. variables `lat`, `lon` and
          `text`.
      
          The 'texttemplate' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
            - A tuple, list, or one-dimensional numpy array of the above
  
          Returns
          -------
          str|numpy.ndarray
          """
          return self["texttemplate"]
  
      @texttemplate.setter
      def texttemplate(self, val):
          self["texttemplate"] = val
  
      # texttemplatesrc
      # ---------------
      @property
      def texttemplatesrc(self):
          """
          Sets the source reference on Chart Studio Cloud for
          texttemplate .
      
          The 'texttemplatesrc' property must be specified as a string or
          as a new_plotly.grid_objs.Column object
  
          Returns
          -------
          str
          """
          return self["texttemplatesrc"]
  
      @texttemplatesrc.setter
      def texttemplatesrc(self, val):
          self["texttemplatesrc"] = val
  
      # uid
      # ---
      @property
      def uid(self):
          """
          Assign an id to this trace, Use this to provide object
          constancy between traces during animations and transitions.
      
          The 'uid' property is a string and must be specified as:
            - A string
            - A number that will be converted to a string
  
          Returns
          -------
          str
          """
          return self["uid"]
  
      @uid.setter
      def uid(self, val):
          self["uid"] = val
  
      # uirevision
      # ----------
      @property
      def uirevision(self):
          """
          Controls persistence of some user-driven changes to the trace:
          `constraintrange` in `parcoords` traces, as well as some
          `editable: true` modifications such as `name` and
          `colorbar.title`. Defaults to `layout.uirevision`. Note that
          other user-driven trace attribute changes are controlled by
          `layout` attributes: `trace.visible` is controlled by
          `layout.legend.uirevision`, `selectedpoints` is controlled by
          `layout.selectionrevision`, and `colorbar.(x|y)` (accessible
          with `config: {editable: true}`) is controlled by
          `layout.editrevision`. Trace changes are tracked by `uid`,
          which only falls back on trace index if no `uid` is provided.
          So if your app can add/remove traces before the end of the
          `data` array, such that the same trace has a different index,
          you can still preserve user-driven changes if you give each
          trace a `uid` that stays with it as it moves.
      
          The 'uirevision' property accepts values of any type
  
          Returns
          -------
          Any
          """
          return self["uirevision"]
  
      @uirevision.setter
      def uirevision(self, val):
          self["uirevision"] = val
  
      # unselected
      # ----------
      @property
      def unselected(self):
          """
          The 'unselected' property is an instance of Unselected
          that may be specified as:
            - An instance of :class:`new_plotly.graph_objs.scattermapbox.Unselected`
            - A dict of string/value properties that will be passed
              to the Unselected constructor
      
              Supported dict properties:
                  
                  marker
                      :class:`new_plotly.graph_objects.scattermapbox.unse
                      lected.Marker` instance or dict with compatible
                      properties
  
          Returns
          -------
          new_plotly.graph_objs.scattermapbox.Unselected
          """
          return self["unselected"]
  
      @unselected.setter
      def unselected(self, val):
          self["unselected"] = val
  
      # visible
      # -------
      @property
      def visible(self):
          """
          Determines whether or not this trace is visible. If
          "legendonly", the trace is not drawn, but can appear as a
          legend item (provided that the legend itself is visible).
      
          The 'visible' property is an enumeration that may be specified as:
            - One of the following enumeration values:
                  [True, False, 'legendonly']
  
          Returns
          -------
          Any
          """
          return self["visible"]
  
      @visible.setter
      def visible(self, val):
          self["visible"] = val
  
      # type
      # ----
      @property
      def type(self):
          return self._props["type"]
  
      # Self properties description
      # ---------------------------
      @property
      def _prop_descriptions(self):
          return """\
          below
              Determines if this scattermapbox trace's layers are to
              be inserted before the layer with the specified ID. By
              default, scattermapbox layers are inserted above all
              the base layers. To place the scattermapbox layers
              above every other layer, set `below` to "''".
          connectgaps
              Determines whether or not gaps (i.e. {nan} or missing
              values) in the provided data arrays are connected.
          customdata
              Assigns extra data each datum. This may be useful when
              listening to hover, click and selection events. Note
              that, "scatter" traces also appends customdata items in
              the markers DOM elements
          customdatasrc
              Sets the source reference on Chart Studio Cloud for
              customdata .
          fill
              Sets the area to fill with a solid color. Use with
              `fillcolor` if not "none". "toself" connects the
              endpoints of the trace (or each segment of the trace if
              it has gaps) into a closed shape.
          fillcolor
              Sets the fill color. Defaults to a half-transparent
              variant of the line color, marker color, or marker line
              color, whichever is available.
          hoverinfo
              Determines which trace information appear on hover. If
              `none` or `skip` are set, no information is displayed
              upon hovering. But, if `none` is set, click and hover
              events are still fired.
          hoverinfosrc
              Sets the source reference on Chart Studio Cloud for
              hoverinfo .
          hoverlabel
              :class:`new_plotly.graph_objects.scattermapbox.Hoverlabel`
              instance or dict with compatible properties
          hovertemplate
              Template string used for rendering the information that
              appear on hover box. Note that this will override
              `hoverinfo`. Variables are inserted using %{variable},
              for example "y: %{y}" as well as %{xother}, {%_xother},
              {%_xother_}, {%xother_}. When showing info for several
              points, "xother" will be added to those with different
              x positions from the first point. An underscore before
              or after "(x|y)other" will add a space on that side,
              only when this field is shown. Numbers are formatted
              using d3-format's syntax %{variable:d3-format}, for
              example "Price: %{y:$.2f}".
              https://github.com/d3/d3-3.x-api-
              reference/blob/master/Formatting.md#d3_format for
              details on the formatting syntax. Dates are formatted
              using d3-time-format's syntax %{variable|d3-time-
              format}, for example "Day: %{2019-01-01|%A}".
              https://github.com/d3/d3-time-format#locale_format for
              details on the date formatting syntax. The variables
              available in `hovertemplate` are the ones emitted as
              event data described at this link
              https://plotly.com/javascript/plotlyjs-events/#event-
              data. Additionally, every attributes that can be
              specified per-point (the ones that are `arrayOk: true`)
              are available.  Anything contained in tag `<extra>` is
              displayed in the secondary box, for example
              "<extra>{fullData.name}</extra>". To hide the secondary
              box completely, use an empty tag `<extra></extra>`.
          hovertemplatesrc
              Sets the source reference on Chart Studio Cloud for
              hovertemplate .
          hovertext
              Sets hover text elements associated with each (lon,lat)
              pair If a single string, the same string appears over
              all the data points. If an array of string, the items
              are mapped in order to the this trace's (lon,lat)
              coordinates. To be seen, trace `hoverinfo` must contain
              a "text" flag.
          hovertextsrc
              Sets the source reference on Chart Studio Cloud for
              hovertext .
          ids
              Assigns id labels to each datum. These ids for object
              constancy of data points during animation. Should be an
              array of strings, not numbers or any other type.
          idssrc
              Sets the source reference on Chart Studio Cloud for
              ids .
          lat
              Sets the latitude coordinates (in degrees North).
          latsrc
              Sets the source reference on Chart Studio Cloud for
              lat .
          legendgroup
              Sets the legend group for this trace. Traces part of
              the same legend group hide/show at the same time when
              toggling legend items.
          line
              :class:`new_plotly.graph_objects.scattermapbox.Line`
              instance or dict with compatible properties
          lon
              Sets the longitude coordinates (in degrees East).
          lonsrc
              Sets the source reference on Chart Studio Cloud for
              lon .
          marker
              :class:`new_plotly.graph_objects.scattermapbox.Marker`
              instance or dict with compatible properties
          meta
              Assigns extra meta information associated with this
              trace that can be used in various text attributes.
              Attributes such as trace `name`, graph, axis and
              colorbar `title.text`, annotation `text`
              `rangeselector`, `updatemenues` and `sliders` `label`
              text all support `meta`. To access the trace `meta`
              values in an attribute in the same trace, simply use
              `%{meta[i]}` where `i` is the index or key of the
              `meta` item in question. To access trace `meta` in
              layout attributes, use `%{data[n[.meta[i]}` where `i`
              is the index or key of the `meta` and `n` is the trace
              index.
          metasrc
              Sets the source reference on Chart Studio Cloud for
              meta .
          mode
              Determines the drawing mode for this scatter trace. If
              the provided `mode` includes "text" then the `text`
              elements appear at the coordinates. Otherwise, the
              `text` elements appear on hover.
          name
              Sets the trace name. The trace name appear as the
              legend item and on hover.
          opacity
              Sets the opacity of the trace.
          selected
              :class:`new_plotly.graph_objects.scattermapbox.Selected`
              instance or dict with compatible properties
          selectedpoints
              Array containing integer indices of selected points.
              Has an effect only for traces that support selections.
              Note that an empty array means an empty selection where
              the `unselected` are turned on for all points, whereas,
              any other non-array values means no selection all where
              the `selected` and `unselected` styles have no effect.
          showlegend
              Determines whether or not an item corresponding to this
              trace is shown in the legend.
          stream
              :class:`new_plotly.graph_objects.scattermapbox.Stream`
              instance or dict with compatible properties
          subplot
              Sets a reference between this trace's data coordinates
              and a mapbox subplot. If "mapbox" (the default value),
              the data refer to `layout.mapbox`. If "mapbox2", the
              data refer to `layout.mapbox2`, and so on.
          text
              Sets text elements associated with each (lon,lat) pair
              If a single string, the same string appears over all
              the data points. If an array of string, the items are
              mapped in order to the this trace's (lon,lat)
              coordinates. If trace `hoverinfo` contains a "text"
              flag and "hovertext" is not set, these elements will be
              seen in the hover labels.
          textfont
              Sets the icon text font (color=mapbox.layer.paint.text-
              color, size=mapbox.layer.layout.text-size). Has an
              effect only when `type` is set to "symbol".
          textposition
              Sets the positions of the `text` elements with respects
              to the (x,y) coordinates.
          textsrc
              Sets the source reference on Chart Studio Cloud for
              text .
          texttemplate
              Template string used for rendering the information text
              that appear on points. Note that this will override
              `textinfo`. Variables are inserted using %{variable},
              for example "y: %{y}". Numbers are formatted using
              d3-format's syntax %{variable:d3-format}, for example
              "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
              reference/blob/master/Formatting.md#d3_format for
              details on the formatting syntax. Dates are formatted
              using d3-time-format's syntax %{variable|d3-time-
              format}, for example "Day: %{2019-01-01|%A}".
              https://github.com/d3/d3-time-format#locale_format for
              details on the date formatting syntax. Every attributes
              that can be specified per-point (the ones that are
              `arrayOk: true`) are available. variables `lat`, `lon`
              and `text`.
          texttemplatesrc
              Sets the source reference on Chart Studio Cloud for
              texttemplate .
          uid
              Assign an id to this trace, Use this to provide object
              constancy between traces during animations and
              transitions.
          uirevision
              Controls persistence of some user-driven changes to the
              trace: `constraintrange` in `parcoords` traces, as well
              as some `editable: true` modifications such as `name`
              and `colorbar.title`. Defaults to `layout.uirevision`.
              Note that other user-driven trace attribute changes are
              controlled by `layout` attributes: `trace.visible` is
              controlled by `layout.legend.uirevision`,
              `selectedpoints` is controlled by
              `layout.selectionrevision`, and `colorbar.(x|y)`
              (accessible with `config: {editable: true}`) is
              controlled by `layout.editrevision`. Trace changes are
              tracked by `uid`, which only falls back on trace index
              if no `uid` is provided. So if your app can add/remove
              traces before the end of the `data` array, such that
              the same trace has a different index, you can still
              preserve user-driven changes if you give each trace a
              `uid` that stays with it as it moves.
          unselected
              :class:`new_plotly.graph_objects.scattermapbox.Unselected`
              instance or dict with compatible properties
          visible
              Determines whether or not this trace is visible. If
              "legendonly", the trace is not drawn, but can appear as
              a legend item (provided that the legend itself is
              visible).
          """
  
      def __init__(
          self,
          arg=None,
          below=None,
          connectgaps=None,
          customdata=None,
          customdatasrc=None,
          fill=None,
          fillcolor=None,
          hoverinfo=None,
          hoverinfosrc=None,
          hoverlabel=None,
          hovertemplate=None,
          hovertemplatesrc=None,
          hovertext=None,
          hovertextsrc=None,
          ids=None,
          idssrc=None,
          lat=None,
          latsrc=None,
          legendgroup=None,
          line=None,
          lon=None,
          lonsrc=None,
          marker=None,
          meta=None,
          metasrc=None,
          mode=None,
          name=None,
          opacity=None,
          selected=None,
          selectedpoints=None,
          showlegend=None,
          stream=None,
          subplot=None,
          text=None,
          textfont=None,
          textposition=None,
          textsrc=None,
          texttemplate=None,
          texttemplatesrc=None,
          uid=None,
          uirevision=None,
          unselected=None,
          visible=None,
          **kwargs
      ):
          """
          Construct a new Scattermapbox object
          
          The data visualized as scatter point, lines or marker symbols
          on a Mapbox GL geographic map is provided by longitude/latitude
          pairs in `lon` and `lat`.
  
          Parameters
          ----------
          arg
              dict of properties compatible with this constructor or
              an instance of :class:`new_plotly.graph_objs.Scattermapbox`
          below
              Determines if this scattermapbox trace's layers are to
              be inserted before the layer with the specified ID. By
              default, scattermapbox layers are inserted above all
              the base layers. To place the scattermapbox layers
              above every other layer, set `below` to "''".
          connectgaps
              Determines whether or not gaps (i.e. {nan} or missing
              values) in the provided data arrays are connected.
          customdata
              Assigns extra data each datum. This may be useful when
              listening to hover, click and selection events. Note
              that, "scatter" traces also appends customdata items in
              the markers DOM elements
          customdatasrc
              Sets the source reference on Chart Studio Cloud for
              customdata .
          fill
              Sets the area to fill with a solid color. Use with
              `fillcolor` if not "none". "toself" connects the
              endpoints of the trace (or each segment of the trace if
              it has gaps) into a closed shape.
          fillcolor
              Sets the fill color. Defaults to a half-transparent
              variant of the line color, marker color, or marker line
              color, whichever is available.
          hoverinfo
              Determines which trace information appear on hover. If
              `none` or `skip` are set, no information is displayed
              upon hovering. But, if `none` is set, click and hover
              events are still fired.
          hoverinfosrc
              Sets the source reference on Chart Studio Cloud for
              hoverinfo .
          hoverlabel
              :class:`new_plotly.graph_objects.scattermapbox.Hoverlabel`
              instance or dict with compatible properties
          hovertemplate
              Template string used for rendering the information that
              appear on hover box. Note that this will override
              `hoverinfo`. Variables are inserted using %{variable},
              for example "y: %{y}" as well as %{xother}, {%_xother},
              {%_xother_}, {%xother_}. When showing info for several
              points, "xother" will be added to those with different
              x positions from the first point. An underscore before
              or after "(x|y)other" will add a space on that side,
              only when this field is shown. Numbers are formatted
              using d3-format's syntax %{variable:d3-format}, for
              example "Price: %{y:$.2f}".
              https://github.com/d3/d3-3.x-api-
              reference/blob/master/Formatting.md#d3_format for
              details on the formatting syntax. Dates are formatted
              using d3-time-format's syntax %{variable|d3-time-
              format}, for example "Day: %{2019-01-01|%A}".
              https://github.com/d3/d3-time-format#locale_format for
              details on the date formatting syntax. The variables
              available in `hovertemplate` are the ones emitted as
              event data described at this link
              https://plotly.com/javascript/plotlyjs-events/#event-
              data. Additionally, every attributes that can be
              specified per-point (the ones that are `arrayOk: true`)
              are available.  Anything contained in tag `<extra>` is
              displayed in the secondary box, for example
              "<extra>{fullData.name}</extra>". To hide the secondary
              box completely, use an empty tag `<extra></extra>`.
          hovertemplatesrc
              Sets the source reference on Chart Studio Cloud for
              hovertemplate .
          hovertext
              Sets hover text elements associated with each (lon,lat)
              pair If a single string, the same string appears over
              all the data points. If an array of string, the items
              are mapped in order to the this trace's (lon,lat)
              coordinates. To be seen, trace `hoverinfo` must contain
              a "text" flag.
          hovertextsrc
              Sets the source reference on Chart Studio Cloud for
              hovertext .
          ids
              Assigns id labels to each datum. These ids for object
              constancy of data points during animation. Should be an
              array of strings, not numbers or any other type.
          idssrc
              Sets the source reference on Chart Studio Cloud for
              ids .
          lat
              Sets the latitude coordinates (in degrees North).
          latsrc
              Sets the source reference on Chart Studio Cloud for
              lat .
          legendgroup
              Sets the legend group for this trace. Traces part of
              the same legend group hide/show at the same time when
              toggling legend items.
          line
              :class:`new_plotly.graph_objects.scattermapbox.Line`
              instance or dict with compatible properties
          lon
              Sets the longitude coordinates (in degrees East).
          lonsrc
              Sets the source reference on Chart Studio Cloud for
              lon .
          marker
              :class:`new_plotly.graph_objects.scattermapbox.Marker`
              instance or dict with compatible properties
          meta
              Assigns extra meta information associated with this
              trace that can be used in various text attributes.
              Attributes such as trace `name`, graph, axis and
              colorbar `title.text`, annotation `text`
              `rangeselector`, `updatemenues` and `sliders` `label`
              text all support `meta`. To access the trace `meta`
              values in an attribute in the same trace, simply use
              `%{meta[i]}` where `i` is the index or key of the
              `meta` item in question. To access trace `meta` in
              layout attributes, use `%{data[n[.meta[i]}` where `i`
              is the index or key of the `meta` and `n` is the trace
              index.
          metasrc
              Sets the source reference on Chart Studio Cloud for
              meta .
          mode
              Determines the drawing mode for this scatter trace. If
              the provided `mode` includes "text" then the `text`
              elements appear at the coordinates. Otherwise, the
              `text` elements appear on hover.
          name
              Sets the trace name. The trace name appear as the
              legend item and on hover.
          opacity
              Sets the opacity of the trace.
          selected
              :class:`new_plotly.graph_objects.scattermapbox.Selected`
              instance or dict with compatible properties
          selectedpoints
              Array containing integer indices of selected points.
              Has an effect only for traces that support selections.
              Note that an empty array means an empty selection where
              the `unselected` are turned on for all points, whereas,
              any other non-array values means no selection all where
              the `selected` and `unselected` styles have no effect.
          showlegend
              Determines whether or not an item corresponding to this
              trace is shown in the legend.
          stream
              :class:`new_plotly.graph_objects.scattermapbox.Stream`
              instance or dict with compatible properties
          subplot
              Sets a reference between this trace's data coordinates
              and a mapbox subplot. If "mapbox" (the default value),
              the data refer to `layout.mapbox`. If "mapbox2", the
              data refer to `layout.mapbox2`, and so on.
          text
              Sets text elements associated with each (lon,lat) pair
              If a single string, the same string appears over all
              the data points. If an array of string, the items are
              mapped in order to the this trace's (lon,lat)
              coordinates. If trace `hoverinfo` contains a "text"
              flag and "hovertext" is not set, these elements will be
              seen in the hover labels.
          textfont
              Sets the icon text font (color=mapbox.layer.paint.text-
              color, size=mapbox.layer.layout.text-size). Has an
              effect only when `type` is set to "symbol".
          textposition
              Sets the positions of the `text` elements with respects
              to the (x,y) coordinates.
          textsrc
              Sets the source reference on Chart Studio Cloud for
              text .
          texttemplate
              Template string used for rendering the information text
              that appear on points. Note that this will override
              `textinfo`. Variables are inserted using %{variable},
              for example "y: %{y}". Numbers are formatted using
              d3-format's syntax %{variable:d3-format}, for example
              "Price: %{y:$.2f}". https://github.com/d3/d3-3.x-api-
              reference/blob/master/Formatting.md#d3_format for
              details on the formatting syntax. Dates are formatted
              using d3-time-format's syntax %{variable|d3-time-
              format}, for example "Day: %{2019-01-01|%A}".
              https://github.com/d3/d3-time-format#locale_format for
              details on the date formatting syntax. Every attributes
              that can be specified per-point (the ones that are
              `arrayOk: true`) are available. variables `lat`, `lon`
              and `text`.
          texttemplatesrc
              Sets the source reference on Chart Studio Cloud for
              texttemplate .
          uid
              Assign an id to this trace, Use this to provide object
              constancy between traces during animations and
              transitions.
          uirevision
              Controls persistence of some user-driven changes to the
              trace: `constraintrange` in `parcoords` traces, as well
              as some `editable: true` modifications such as `name`
              and `colorbar.title`. Defaults to `layout.uirevision`.
              Note that other user-driven trace attribute changes are
              controlled by `layout` attributes: `trace.visible` is
              controlled by `layout.legend.uirevision`,
              `selectedpoints` is controlled by
              `layout.selectionrevision`, and `colorbar.(x|y)`
              (accessible with `config: {editable: true}`) is
              controlled by `layout.editrevision`. Trace changes are
              tracked by `uid`, which only falls back on trace index
              if no `uid` is provided. So if your app can add/remove
              traces before the end of the `data` array, such that
              the same trace has a different index, you can still
              preserve user-driven changes if you give each trace a
              `uid` that stays with it as it moves.
          unselected
              :class:`new_plotly.graph_objects.scattermapbox.Unselected`
              instance or dict with compatible properties
          visible
              Determines whether or not this trace is visible. If
              "legendonly", the trace is not drawn, but can appear as
              a legend item (provided that the legend itself is
              visible).
  
          Returns
          -------
          Scattermapbox
          """
          super(Scattermapbox, self).__init__("scattermapbox")
  
          if "_parent" in kwargs:
              self._parent = kwargs["_parent"]
              return
  
          # Validate arg
          # ------------
          if arg is None:
              arg = {}
          elif isinstance(arg, self.__class__):
              arg = arg.to_plotly_json()
          elif isinstance(arg, dict):
              arg = _copy.copy(arg)
          else:
              raise ValueError(
                  """\
  The first argument to the new_plotly.graph_objs.Scattermapbox 
  constructor must be a dict or 
  an instance of :class:`new_plotly.graph_objs.Scattermapbox`"""
              )
  
          # Handle skip_invalid
          # -------------------
          self._skip_invalid = kwargs.pop("skip_invalid", False)
          self._validate = kwargs.pop("_validate", True)
  
          # Populate data dict with properties
          # ----------------------------------
          _v = arg.pop("below", None)
          _v = below if below is not None else _v
          if _v is not None:
              self["below"] = _v
          _v = arg.pop("connectgaps", None)
          _v = connectgaps if connectgaps is not None else _v
          if _v is not None:
              self["connectgaps"] = _v
          _v = arg.pop("customdata", None)
          _v = customdata if customdata is not None else _v
          if _v is not None:
              self["customdata"] = _v
          _v = arg.pop("customdatasrc", None)
          _v = customdatasrc if customdatasrc is not None else _v
          if _v is not None:
              self["customdatasrc"] = _v
          _v = arg.pop("fill", None)
          _v = fill if fill is not None else _v
          if _v is not None:
              self["fill"] = _v
          _v = arg.pop("fillcolor", None)
          _v = fillcolor if fillcolor is not None else _v
          if _v is not None:
              self["fillcolor"] = _v
          _v = arg.pop("hoverinfo", None)
          _v = hoverinfo if hoverinfo is not None else _v
          if _v is not None:
              self["hoverinfo"] = _v
          _v = arg.pop("hoverinfosrc", None)
          _v = hoverinfosrc if hoverinfosrc is not None else _v
          if _v is not None:
              self["hoverinfosrc"] = _v
          _v = arg.pop("hoverlabel", None)
          _v = hoverlabel if hoverlabel is not None else _v
          if _v is not None:
              self["hoverlabel"] = _v
          _v = arg.pop("hovertemplate", None)
          _v = hovertemplate if hovertemplate is not None else _v
          if _v is not None:
              self["hovertemplate"] = _v
          _v = arg.pop("hovertemplatesrc", None)
          _v = hovertemplatesrc if hovertemplatesrc is not None else _v
          if _v is not None:
              self["hovertemplatesrc"] = _v
          _v = arg.pop("hovertext", None)
          _v = hovertext if hovertext is not None else _v
          if _v is not None:
              self["hovertext"] = _v
          _v = arg.pop("hovertextsrc", None)
          _v = hovertextsrc if hovertextsrc is not None else _v
          if _v is not None:
              self["hovertextsrc"] = _v
          _v = arg.pop("ids", None)
          _v = ids if ids is not None else _v
          if _v is not None:
              self["ids"] = _v
          _v = arg.pop("idssrc", None)
          _v = idssrc if idssrc is not None else _v
          if _v is not None:
              self["idssrc"] = _v
          _v = arg.pop("lat", None)
          _v = lat if lat is not None else _v
          if _v is not None:
              self["lat"] = _v
          _v = arg.pop("latsrc", None)
          _v = latsrc if latsrc is not None else _v
          if _v is not None:
              self["latsrc"] = _v
          _v = arg.pop("legendgroup", None)
          _v = legendgroup if legendgroup is not None else _v
          if _v is not None:
              self["legendgroup"] = _v
          _v = arg.pop("line", None)
          _v = line if line is not None else _v
          if _v is not None:
              self["line"] = _v
          _v = arg.pop("lon", None)
          _v = lon if lon is not None else _v
          if _v is not None:
              self["lon"] = _v
          _v = arg.pop("lonsrc", None)
          _v = lonsrc if lonsrc is not None else _v
          if _v is not None:
              self["lonsrc"] = _v
          _v = arg.pop("marker", None)
          _v = marker if marker is not None else _v
          if _v is not None:
              self["marker"] = _v
          _v = arg.pop("meta", None)
          _v = meta if meta is not None else _v
          if _v is not None:
              self["meta"] = _v
          _v = arg.pop("metasrc", None)
          _v = metasrc if metasrc is not None else _v
          if _v is not None:
              self["metasrc"] = _v
          _v = arg.pop("mode", None)
          _v = mode if mode is not None else _v
          if _v is not None:
              self["mode"] = _v
          _v = arg.pop("name", None)
          _v = name if name is not None else _v
          if _v is not None:
              self["name"] = _v
          _v = arg.pop("opacity", None)
          _v = opacity if opacity is not None else _v
          if _v is not None:
              self["opacity"] = _v
          _v = arg.pop("selected", None)
          _v = selected if selected is not None else _v
          if _v is not None:
              self["selected"] = _v
          _v = arg.pop("selectedpoints", None)
          _v = selectedpoints if selectedpoints is not None else _v
          if _v is not None:
              self["selectedpoints"] = _v
          _v = arg.pop("showlegend", None)
          _v = showlegend if showlegend is not None else _v
          if _v is not None:
              self["showlegend"] = _v
          _v = arg.pop("stream", None)
          _v = stream if stream is not None else _v
          if _v is not None:
              self["stream"] = _v
          _v = arg.pop("subplot", None)
          _v = subplot if subplot is not None else _v
          if _v is not None:
              self["subplot"] = _v
          _v = arg.pop("text", None)
          _v = text if text is not None else _v
          if _v is not None:
              self["text"] = _v
          _v = arg.pop("textfont", None)
          _v = textfont if textfont is not None else _v
          if _v is not None:
              self["textfont"] = _v
          _v = arg.pop("textposition", None)
          _v = textposition if textposition is not None else _v
          if _v is not None:
              self["textposition"] = _v
          _v = arg.pop("textsrc", None)
          _v = textsrc if textsrc is not None else _v
          if _v is not None:
              self["textsrc"] = _v
          _v = arg.pop("texttemplate", None)
          _v = texttemplate if texttemplate is not None else _v
          if _v is not None:
              self["texttemplate"] = _v
          _v = arg.pop("texttemplatesrc", None)
          _v = texttemplatesrc if texttemplatesrc is not None else _v
          if _v is not None:
              self["texttemplatesrc"] = _v
          _v = arg.pop("uid", None)
          _v = uid if uid is not None else _v
          if _v is not None:
              self["uid"] = _v
          _v = arg.pop("uirevision", None)
          _v = uirevision if uirevision is not None else _v
          if _v is not None:
              self["uirevision"] = _v
          _v = arg.pop("unselected", None)
          _v = unselected if unselected is not None else _v
          if _v is not None:
              self["unselected"] = _v
          _v = arg.pop("visible", None)
          _v = visible if visible is not None else _v
          if _v is not None:
              self["visible"] = _v
  
          # Read-only literals
          # ------------------
  
          self._props["type"] = "scattermapbox"
          arg.pop("type", None)
  
          # Process unknown kwargs
          # ----------------------
          self._process_kwargs(**dict(arg, **kwargs))
  
          # Reset skip_invalid
          # ------------------
          self._skip_invalid = False
  