Class SubtypeFeatureLayer

  • All Implemented Interfaces:
    TimeAware, LayerContent, Loadable, FloorAware, PopupSource

    public final class SubtypeFeatureLayer
    extends FeatureLayer
    A layer that can visualize feature data with different visibility, rendering, popup properties, and so on for some or all of the subtypes in an ArcGISFeatureTable.

    The ArcGISFeatureTable must have a subtype field and at least one FeatureSubtype defined, otherwise the layer will fail to load.

    Subtypes provide a way to organize your data within an ArcGIS feature table. For example, the streets in a city streets feature table could be categorized into three subtypes - local streets, collector streets, and arterial streets. The benefit of the subtype feature layer is that it allows you to configure different layer properties per subtype. This is particularly useful for data, such as utility networks, in which many different network elements are grouped into a single subtype feature layer.

    Functional characteristics

    The subtype feature layer acts like a group layer that automatically creates one feature layer, or subtype sublayer, for each subtype in the table. Each subtype sublayer can be configured independently of one another. They can have different renderers, label definitions, max and min scales, visibility, layer order in the map, and so on. When a subtype group layer is read from a web map or mobile map, it is represented as a SubtypeFeatureLayer. Saving a map that contains a SubtypeFeatureLayer will save the layer as a subtype group layer. Subtype feature layers are supported in offline maps and will work in offline editing workflows.

    Performance characteristics

    Queries are optimized across all sublayers. For example, a pan of the map sends a single request to the feature table to cover all the sublayers. If you had manually created a feature layer for each subtype, this would have resulted in one query per feature layer.

    Since:
    100.7.0
    See Also:
    FeatureLayer
    • Constructor Detail

      • SubtypeFeatureLayer

        public SubtypeFeatureLayer​(ArcGISFeatureTable featureTable)
        Creates a new subtype feature layer object. If there are no feature subtype objects defined on the ArcGISFeatureTable, the layer will fail to load.
        Parameters:
        featureTable - the feature table used as the source of the subtype feature layer
        Throws:
        java.lang.IllegalArgumentException - if featureTable is null
        Since:
        100.7.0
      • SubtypeFeatureLayer

        public SubtypeFeatureLayer​(Item item,
                                   long layerId)
        Creates a new subtype feature layer object from a feature service portal item.
        Parameters:
        item - a feature service PortalItem
        layerId - the layer id for which to create the layer
        Throws:
        java.lang.IllegalArgumentException - if item is null
        Since:
        100.12.0
        See Also:
        Layer.getItem()
    • Method Detail

      • getSubtypeSublayers

        public java.util.List<SubtypeSublayer> getSubtypeSublayers()
        Gets a mutable list of SubtypeSublayers. The SubtypeSublayers in this list are the same objects in LayerContent.getSubLayerContents(). The difference between the two lists is this list is modifiable so the layer order is configurable.
        Returns:
        a mutable list of SubtypeSublayers
        Since:
        100.7.0
      • getSublayerWithSubtypeName

        public SubtypeSublayer getSublayerWithSubtypeName​(java.lang.String name)
        Finds a SubtypeSublayer for a feature subtype based on the subtype name.
        Parameters:
        name - the subtype name of the sublayer to retrieve
        Returns:
        the SubtypeSublayer, or null if not found
        Throws:
        java.lang.IllegalArgumentException - if name is null or empty
        Since:
        100.7.0