docstr: Construct a new Layer object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of
      :class:`plotly.graph_objs.layout.mapbox.Layer`
  below
      Determines if the layer will be inserted before the
      layer with the specified ID. If omitted or set to '',
      the layer will be inserted above every existing layer.
  circle
      :class:`plotly.graph_objects.layout.mapbox.layer.Circle
      ` instance or dict with compatible properties
  color
      Sets the primary layer color. If `type` is "circle",
      color corresponds to the circle color
      (mapbox.layer.paint.circle-color) If `type` is "line",
      color corresponds to the line color
      (mapbox.layer.paint.line-color) If `type` is "fill",
      color corresponds to the fill color
      (mapbox.layer.paint.fill-color) If `type` is "symbol",
      color corresponds to the icon color
      (mapbox.layer.paint.icon-color)
  coordinates
      Sets the coordinates array contains [longitude,
      latitude] pairs for the image corners listed in
      clockwise order: top left, top right, bottom right,
      bottom left. Only has an effect for "image"
      `sourcetype`.
  fill
      :class:`plotly.graph_objects.layout.mapbox.layer.Fill`
      instance or dict with compatible properties
  line
      :class:`plotly.graph_objects.layout.mapbox.layer.Line`
      instance or dict with compatible properties
  maxzoom
      Sets the maximum zoom level (mapbox.layer.maxzoom). At
      zoom levels equal to or greater than the maxzoom, the
      layer will be hidden.
  minzoom
      Sets the minimum zoom level (mapbox.layer.minzoom). At
      zoom levels less than the minzoom, the layer will be
      hidden.
  name
      When used in a template, named items are created in the
      output figure in addition to any items the figure
      already has in this array. You can modify these items
      in the output figure by making your own item with
      `templateitemname` matching this `name` alongside your
      modifications (including `visible: false` or `enabled:
      false` to hide it). Has no effect outside of a
      template.
  opacity
      Sets the opacity of the layer. If `type` is "circle",
      opacity corresponds to the circle opacity
      (mapbox.layer.paint.circle-opacity) If `type` is
      "line", opacity corresponds to the line opacity
      (mapbox.layer.paint.line-opacity) If `type` is "fill",
      opacity corresponds to the fill opacity
      (mapbox.layer.paint.fill-opacity) If `type` is
      "symbol", opacity corresponds to the icon/text opacity
      (mapbox.layer.paint.text-opacity)
  source
      Sets the source data for this layer
      (mapbox.layer.source). When `sourcetype` is set to
      "geojson", `source` can be a URL to a GeoJSON or a
      GeoJSON object. When `sourcetype` is set to "vector" or
      "raster", `source` can be a URL or an array of tile
      URLs. When `sourcetype` is set to "image", `source` can
      be a URL to an image.
  sourceattribution
      Sets the attribution for this source.
  sourcelayer
      Specifies the layer to use from a vector tile source
      (mapbox.layer.source-layer). Required for "vector"
      source type that supports multiple layers.
  sourcetype
      Sets the source type for this layer, that is the type
      of the layer data.
  symbol
      :class:`plotly.graph_objects.layout.mapbox.layer.Symbol
      ` instance or dict with compatible properties
  templateitemname
      Used to refer to a named item in this array in the
      template. Named items from the template will be created
      even without a matching item in the input figure, but
      you can modify one by making an item with
      `templateitemname` matching its `name`, alongside your
      modifications (including `visible: false` or `enabled:
      false` to hide it). If there is no template or no
      matching item, this item will be hidden unless you
      explicitly show it with `visible: true`.
  type
      Sets the layer type, that is the how the layer data set
      in `source` will be rendered With `sourcetype` set to
      "geojson", the following values are allowed: "circle",
      "line", "fill" and "symbol". but note that "line" and
      "fill" are not compatible with Point GeoJSON
      geometries. With `sourcetype` set to "vector", the
      following values are allowed:  "circle", "line", "fill"
      and "symbol". With `sourcetype` set to "raster" or
      `*image*`, only the "raster" value is allowed.
  visible
      Determines whether this layer is displayed
  
  Returns
  -------
  Layer
docstr_tok: ["Construct","a","new","Layer","object","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.layout.mapbox.Layer","`","below","Determines","if","the","layer","will","be","inserted","before","the","layer","with","the","specified","ID",".","If","omitted","or","set","to","``",",","the","layer","will","be","inserted","above","every","existing","layer",".","circle",":","class",":","`","plotly.graph_objects.layout.mapbox.layer.Circle","`","instance","or","dict","with","compatible","properties","color","Sets","the","primary","layer","color",".","If","`","type","`","is","``","circle","''",",","color","corresponds","to","the","circle","color","(","mapbox.layer.paint.circle-color",")","If","`","type","`","is","``","line","''",",","color","corresponds","to","the","line","color","(","mapbox.layer.paint.line-color",")","If","`","type","`","is","``","fill","''",",","color","corresponds","to","the","fill","color","(","mapbox.layer.paint.fill-color",")","If","`","type","`","is","``","symbol","''",",","color","corresponds","to","the","icon","color","(","mapbox.layer.paint.icon-color",")","coordinates","Sets","the","coordinates","array","contains","[","longitude",",","latitude","]","pairs","for","the","image","corners","listed","in","clockwise","order",":","top","left",",","top","right",",","bottom","right",",","bottom","left",".","Only","has","an","effect","for","``","image","''","`","sourcetype","`",".","fill",":","class",":","`","plotly.graph_objects.layout.mapbox.layer.Fill","`","instance","or","dict","with","compatible","properties","line",":","class",":","`","plotly.graph_objects.layout.mapbox.layer.Line","`","instance","or","dict","with","compatible","properties","maxzoom","Sets","the","maximum","zoom","level","(","mapbox.layer.maxzoom",")",".","At","zoom","levels","equal","to","or","greater","than","the","maxzoom",",","the","layer","will","be","hidden",".","minzoom","Sets","the","minimum","zoom","level","(","mapbox.layer.minzoom",")",".","At","zoom","levels","less","than","the","minzoom",",","the","layer","will","be","hidden",".","name","When","used","in","a","template",",","named","items","are","created","in","the","output","figure","in","addition","to","any","items","the","figure","already","has","in","this","array",".","You","can","modify","these","items","in","the","output","figure","by","making","your","own","item","with","`","templateitemname","`","matching","this","`","name","`","alongside","your","modifications","(","including","`","visible",":","false","`","or","`","enabled",":","false","`","to","hide","it",")",".","Has","no","effect","outside","of","a","template",".","opacity","Sets","the","opacity","of","the","layer",".","If","`","type","`","is","``","circle","''",",","opacity","corresponds","to","the","circle","opacity","(","mapbox.layer.paint.circle-opacity",")","If","`","type","`","is","``","line","''",",","opacity","corresponds","to","the","line","opacity","(","mapbox.layer.paint.line-opacity",")","If","`","type","`","is","``","fill","''",",","opacity","corresponds","to","the","fill","opacity","(","mapbox.layer.paint.fill-opacity",")","If","`","type","`","is","``","symbol","''",",","opacity","corresponds","to","the","icon\/text","opacity","(","mapbox.layer.paint.text-opacity",")","source","Sets","the","source","data","for","this","layer","(","mapbox.layer.source",")",".","When","`","sourcetype","`","is","set","to","``","geojson","''",",","`","source","`","can","be","a","URL","to","a","GeoJSON","or","a","GeoJSON","object",".","When","`","sourcetype","`","is","set","to","``","vector","''","or","``","raster","''",",","`","source","`","can","be","a","URL","or","an","array","of","tile","URLs",".","When","`","sourcetype","`","is","set","to","``","image","''",",","`","source","`","can","be","a","URL","to","an","image",".","sourceattribution","Sets","the","attribution","for","this","source",".","sourcelayer","Specifies","the","layer","to","use","from","a","vector","tile","source","(","mapbox.layer.source-layer",")",".","Required","for","``","vector","''","source","type","that","supports","multiple","layers",".","sourcetype","Sets","the","source","type","for","this","layer",",","that","is","the","type","of","the","layer","data",".","symbol",":","class",":","`","plotly.graph_objects.layout.mapbox.layer.Symbol","`","instance","or","dict","with","compatible","properties","templateitemname","Used","to","refer","to","a","named","item","in","this","array","in","the","template",".","Named","items","from","the","template","will","be","created","even","without","a","matching","item","in","the","input","figure",",","but","you","can","modify","one","by","making","an","item","with","`","templateitemname","`","matching","its","`","name","`",",","alongside","your","modifications","(","including","`","visible",":","false","`","or","`","enabled",":","false","`","to","hide","it",")",".","If","there","is","no","template","or","no","matching","item",",","this","item","will","be","hidden","unless","you","explicitly","show","it","with","`","visible",":","true","`",".","type","Sets","the","layer","type",",","that","is","the","how","the","layer","data","set","in","`","source","`","will","be","rendered","With","`","sourcetype","`","set","to","``","geojson","''",",","the","following","values","are","allowed",":","``","circle","''",",","``","line","''",",","``","fill","''","and","``","symbol","''",".","but","note","that","``","line","''","and","``","fill","''","are","not","compatible","with","Point","GeoJSON","geometries",".","With","`","sourcetype","`","set","to","``","vector","''",",","the","following","values","are","allowed",":","``","circle","''",",","``","line","''",",","``","fill","''","and","``","symbol","''",".","With","`","sourcetype","`","set","to","``","raster","''","or","`","*","image","*","`",",","only","the","``","raster","''","value","is","allowed",".","visible","Determines","whether","this","layer","is","displayed","Returns","--","--","--","-","Layer"]
code: def __init__(
      self,
      arg=None,
      below=None,
      circle=None,
      color=None,
      coordinates=None,
      fill=None,
      line=None,
      maxzoom=None,
      minzoom=None,
      name=None,
      opacity=None,
      source=None,
      sourceattribution=None,
      sourcelayer=None,
      sourcetype=None,
      symbol=None,
      templateitemname=None,
      type=None,
      visible=None,
      **kwargs,
  ):
      """
      Construct a new Layer object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of
          :class:`plotly.graph_objs.layout.mapbox.Layer`
      below
          Determines if the layer will be inserted before the
          layer with the specified ID. If omitted or set to '',
          the layer will be inserted above every existing layer.
      circle
          :class:`plotly.graph_objects.layout.mapbox.layer.Circle
          ` instance or dict with compatible properties
      color
          Sets the primary layer color. If `type` is "circle",
          color corresponds to the circle color
          (mapbox.layer.paint.circle-color) If `type` is "line",
          color corresponds to the line color
          (mapbox.layer.paint.line-color) If `type` is "fill",
          color corresponds to the fill color
          (mapbox.layer.paint.fill-color) If `type` is "symbol",
          color corresponds to the icon color
          (mapbox.layer.paint.icon-color)
      coordinates
          Sets the coordinates array contains [longitude,
          latitude] pairs for the image corners listed in
          clockwise order: top left, top right, bottom right,
          bottom left. Only has an effect for "image"
          `sourcetype`.
      fill
          :class:`plotly.graph_objects.layout.mapbox.layer.Fill`
          instance or dict with compatible properties
      line
          :class:`plotly.graph_objects.layout.mapbox.layer.Line`
          instance or dict with compatible properties
      maxzoom
          Sets the maximum zoom level (mapbox.layer.maxzoom). At
          zoom levels equal to or greater than the maxzoom, the
          layer will be hidden.
      minzoom
          Sets the minimum zoom level (mapbox.layer.minzoom). At
          zoom levels less than the minzoom, the layer will be
          hidden.
      name
          When used in a template, named items are created in the
          output figure in addition to any items the figure
          already has in this array. You can modify these items
          in the output figure by making your own item with
          `templateitemname` matching this `name` alongside your
          modifications (including `visible: false` or `enabled:
          false` to hide it). Has no effect outside of a
          template.
      opacity
          Sets the opacity of the layer. If `type` is "circle",
          opacity corresponds to the circle opacity
          (mapbox.layer.paint.circle-opacity) If `type` is
          "line", opacity corresponds to the line opacity
          (mapbox.layer.paint.line-opacity) If `type` is "fill",
          opacity corresponds to the fill opacity
          (mapbox.layer.paint.fill-opacity) If `type` is
          "symbol", opacity corresponds to the icon/text opacity
          (mapbox.layer.paint.text-opacity)
      source
          Sets the source data for this layer
          (mapbox.layer.source). When `sourcetype` is set to
          "geojson", `source` can be a URL to a GeoJSON or a
          GeoJSON object. When `sourcetype` is set to "vector" or
          "raster", `source` can be a URL or an array of tile
          URLs. When `sourcetype` is set to "image", `source` can
          be a URL to an image.
      sourceattribution
          Sets the attribution for this source.
      sourcelayer
          Specifies the layer to use from a vector tile source
          (mapbox.layer.source-layer). Required for "vector"
          source type that supports multiple layers.
      sourcetype
          Sets the source type for this layer, that is the type
          of the layer data.
      symbol
          :class:`plotly.graph_objects.layout.mapbox.layer.Symbol
          ` instance or dict with compatible properties
      templateitemname
          Used to refer to a named item in this array in the
          template. Named items from the template will be created
          even without a matching item in the input figure, but
          you can modify one by making an item with
          `templateitemname` matching its `name`, alongside your
          modifications (including `visible: false` or `enabled:
          false` to hide it). If there is no template or no
          matching item, this item will be hidden unless you
          explicitly show it with `visible: true`.
      type
          Sets the layer type, that is the how the layer data set
          in `source` will be rendered With `sourcetype` set to
          "geojson", the following values are allowed: "circle",
          "line", "fill" and "symbol". but note that "line" and
          "fill" are not compatible with Point GeoJSON
          geometries. With `sourcetype` set to "vector", the
          following values are allowed:  "circle", "line", "fill"
          and "symbol". With `sourcetype` set to "raster" or
          `*image*`, only the "raster" value is allowed.
      visible
          Determines whether this layer is displayed
  
      Returns
      -------
      Layer
      """
      super(Layer, self).__init__("layers")
  
      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 plotly.graph_objs.layout.mapbox.Layer
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.layout.mapbox.Layer`"""
          )
  
      # 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("circle", None)
      _v = circle if circle is not None else _v
      if _v is not None:
          self["circle"] = _v
      _v = arg.pop("color", None)
      _v = color if color is not None else _v
      if _v is not None:
          self["color"] = _v
      _v = arg.pop("coordinates", None)
      _v = coordinates if coordinates is not None else _v
      if _v is not None:
          self["coordinates"] = _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("line", None)
      _v = line if line is not None else _v
      if _v is not None:
          self["line"] = _v
      _v = arg.pop("maxzoom", None)
      _v = maxzoom if maxzoom is not None else _v
      if _v is not None:
          self["maxzoom"] = _v
      _v = arg.pop("minzoom", None)
      _v = minzoom if minzoom is not None else _v
      if _v is not None:
          self["minzoom"] = _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("source", None)
      _v = source if source is not None else _v
      if _v is not None:
          self["source"] = _v
      _v = arg.pop("sourceattribution", None)
      _v = sourceattribution if sourceattribution is not None else _v
      if _v is not None:
          self["sourceattribution"] = _v
      _v = arg.pop("sourcelayer", None)
      _v = sourcelayer if sourcelayer is not None else _v
      if _v is not None:
          self["sourcelayer"] = _v
      _v = arg.pop("sourcetype", None)
      _v = sourcetype if sourcetype is not None else _v
      if _v is not None:
          self["sourcetype"] = _v
      _v = arg.pop("symbol", None)
      _v = symbol if symbol is not None else _v
      if _v is not None:
          self["symbol"] = _v
      _v = arg.pop("templateitemname", None)
      _v = templateitemname if templateitemname is not None else _v
      if _v is not None:
          self["templateitemname"] = _v
      _v = arg.pop("type", None)
      _v = type if type is not None else _v
      if _v is not None:
          self["type"] = _v
      _v = arg.pop("visible", None)
      _v = visible if visible is not None else _v
      if _v is not None:
          self["visible"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
imports: from plotly.basedatatypes import BaseLayoutHierarchyType
  import copy
label_desc: Use image node_id 38 to create a new Layer object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Layer(arg, below, circle, color, coordinates, fill, line, maxzoom, minzoom, name, opacity, source, sourceattribution, sourcelayer, sourcetype, symbol, templateitemname, type, visible)