Class ArcGISMapImageSublayer

java.lang.Object
com.esri.arcgisruntime.layers.ArcGISSublayer
com.esri.arcgisruntime.layers.ArcGISMapImageSublayer
All Implemented Interfaces:
RemoteResource, LayerContent, Loadable, PopupSource

public final class ArcGISMapImageSublayer extends ArcGISSublayer
An ArcGIS map image sublayer.

ArcGISMapImageLayer displays maps from an ArcGIS map server. Each layer in the underlying map service is represented by an ArcGISSublayer. You can control the visibility and symbols of sublayers and filter data with layer definition expressions.

You can get a list of ArcGISMapImageSublayer objects from an ArcGISMapImageLayer by using ArcGISMapImageLayer.getSublayers(). You can also create a new sublayer from ArcGISMapImageSublayer(int).

The code below shows how to get ArcGISMapImageSublayer objects from an ArcGISMapImageLayer and how to change a property of a sublayer after loading.

 String mapServiceUSA = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer";
 final  ArcGISMapImageLayer mapImageLayer = new ArcGISMapImageLayer(mapServiceUSA);

 mapImageLayer.addDoneLoadingListener(() -> {
   if (mapImageLayer.getLoadStatus() == LoadStatus.LOADED) {
     ListenableList<ArcGISSublayer>  sublayerList = mapImageLayer.getSublayers();
     ArcGISMapImageSublayer mapImageSublayer = (ArcGISMapImageSublayer) sublayerList.get(0);
     mapImageSublayer.setName("New Name");
   }
 });
 mapImageLayer.loadAsync();
 
Setting properties on a ArcGISMapImageSublayer before the ArcGISMapImageLayer is loaded will not overwrite those properties.
Since:
100.0.0
See Also:
  • Constructor Details

    • ArcGISMapImageSublayer

      public ArcGISMapImageSublayer(int id)
      Creates a new ArcGISMapImageSublayer with the given ID. The ID should be zero or greater.
      Parameters:
      id - the ID of the new sub layer, should be zero or greater
      Throws:
      IllegalArgumentException - if id is less than zero
      Since:
      100.0.0
    • ArcGISMapImageSublayer

      public ArcGISMapImageSublayer(int id, SublayerSource sublayerSource)
      Creates a new ArcGISMapImageSublayer with the given ID and sublayer source. The ID should be zero or greater and the sublayer source cannot be null. For sublayer sources other than rasters, a Renderer must be set using setRenderer(Renderer).
      Parameters:
      id - the ID of the new sub layer, should be zero or greater
      sublayerSource - the source of the new sublayer
      Throws:
      IllegalArgumentException - if id is less than zero
      IllegalArgumentException - if sublayer source is null
      Since:
      100.1.0
  • Method Details

    • setRenderer

      public void setRenderer(Renderer renderer)
      Sets the renderer for this sublayer.
      Overrides:
      setRenderer in class ArcGISSublayer
      Parameters:
      renderer - the renderer to set
      Throws:
      IllegalArgumentException - if the renderer is null
      Since:
      100.1.0
      See Also:
    • setOpacity

      public void setOpacity(float opacity)
      Sets the opacity for this sublayer.
      Parameters:
      opacity - the opacity of this layer, which needs to be a value in the range of 0.0 - 1.0, 1.0 being fully opaque
      Throws:
      IllegalArgumentException - if the opacity is out of range
      Since:
      100.1.0
      See Also:
    • setScaleSymbols

      public void setScaleSymbols(boolean scaleSymbols)
      Sets whether the text and symbols on this sublayer will change as the map scale varies.
      Parameters:
      scaleSymbols - true if the text and symbols should change as the map scale varies, false otherwise
      Since:
      100.1.0
      See Also:
    • setMaxScale

      public void setMaxScale(double maxScale)
      Sets the maximum scale for this sublayer.
      Parameters:
      maxScale - the maximum scale
      Since:
      100.1.0
      See Also:
    • setMinScale

      public void setMinScale(double minScale)
      Sets the minimum scale for this sublayer.
      Parameters:
      minScale - the minimum scale
      Since:
      100.1.0
      See Also:
    • setLabelsEnabled

      public void setLabelsEnabled(boolean labelsEnabled)
      Sets whether or not labels are enabled for this sublayer
      Parameters:
      labelsEnabled - true to enable labels, false otherwise
      Since:
      100.1.0
      See Also:
    • setDefinitionExpression

      public void setDefinitionExpression(String definitionExpression)
      Sets the definition expression for this sublayer - can be null. The definition expression is an SQL statement where clause to filter out the features to be displayed.
      Parameters:
      definitionExpression - the definition expression
      Since:
      100.1.0
      See Also:
    • getSource

      public SublayerSource getSource()
      Returns the sublayer's source if available otherwise null.
      Returns:
      the sublayer's source
      Since:
      100.1.0
    • setName

      public void setName(String name)
      Sets the name property for this sublayer.
      Parameters:
      name - the new name for this sublayer, can be null
      Since:
      100.0.0
    • copy

      public ArcGISMapImageSublayer copy()
      Creates a deep copy of this ArcGISMapImageSublayer instance.
      Specified by:
      copy in class ArcGISSublayer
      Returns:
      a deep copy of this ArcGISMapImageSublayer instance, which means that copies of all fields of this layer are made including its loading state
      Since:
      100.1.0
    • getLabelDefinitions

      public List<LabelDefinition> getLabelDefinitions()
      Gets a modifiable list of LabelDefinition objects for this layer.
      Returns:
      a modifiable list of LabelDefinition objects for this layer
      Since:
      100.1.0
    • getTable

      public ServiceFeatureTable getTable()
      Gets the sublayer's feature table.

      This only applies to sublayers of type ArcGISMapServiceSublayerInfo.ServiceType.FEATURE_LAYER or ArcGISMapServiceSublayerInfo.ServiceType.TABLE. This method returns null if the sublayer has not been loaded.

      Returns:
      the sublayer's feature table, or null if none
      Since:
      100.3.0