A symbol
A renderer
Some layer types don’t support symbols
Symbols
For features

The following symbols
-
Simple symbols follow the web map specification. You can create these using the simple symbology API, or get them from web maps and feature services when advanced symbology is turned off.
-
Advanced symbols follow the ArcGIS Pro symbol model. You can create these using the multilayer symbol classes, or get them from feature services, mobile style files, dictionary renderers, and mobile map packages.
When authoring maps in ArcGIS Pro
You should use advanced symbols
A SimpleFillSymbol that uses a SimpleLineSymbol to define its outline:
val simpleLineSymbol = SimpleLineSymbol( style = SimpleLineSymbolStyle.Solid, color = Color.white, width = 0.15f)
val simpleFillSymbol = SimpleFillSymbol( style = SimpleFillSymbolStyle.Solid, color = Color.red, outline = simpleLineSymbol)A SimpleMarkerSceneSymbol used to define a 3D symbol for display in a ArcGISScene:
val sceneSymbol = SimpleMarkerSceneSymbol( style = SimpleMarkerSceneSymbolStyle.Cylinder, color = Color.red, height = 50.0, width = 10.0, depth = 10.0, anchorPosition = SceneSymbolAnchorPosition.Bottom)Renderers
A renderer
Renderers are always used to symbolize feature or raster layers, since symbols cannot be applied directly to that data. A renderer
Renderers
Feature layers and graphics overlays
The following are the types of renderers available for feature layers and graphics overlays:
-
SimpleRenderer— A simple rendererA simple renderer is a renderer that defines a single symbol used to display all features in a layer. displays all features in a layer or graphics overlayA graphics overlay is a client-side, temporary container of graphics to display on a map view or scene view. using the same symbol. For example, display all points in the world cities layer as a small red square. -
UniqueValueRenderer— Applies a unique symbol for each specified value of an attribute (or combination of attributes). A unique value rendererA unique value renderer is a renderer that defines a distinct symbol for each unique data value returned from a field or expression in a layer. can be based on any data type but is typically used with string attributes. For example, display points in the world cities layer using two symbols: a small gray triangle for features with a value ofNfor theCAPITALattribute and a large yellow star for those with a value ofY. -
ClassBreaksRenderer— Symbolizes features or graphics according to specific ranges of values for an attribute. The attribute used for a class breaks rendererA class breaks renderer is a renderer that classifies numeric data into two or more ranges of values to create a visualization. Each class (or range) is defined by a lower and an upper value and a unique symbol. must be numeric. For example, display world cityPOPULATIONvalue with three different symbols based on size range: a small blue circle for cities with a value between0and100000, a slightly larger blue circle for cities with a value between100001and2999999, and a larger blue circle for cities with a value over3000000. -
DictionaryRenderer— Renders features or graphics by constructing multilayer symbols from a style fileA style file is a and associated attribute values. A dictionary renderer.stylxfile created in ArcGIS Pro that contains symbol primitives, such as the symbol frame, lines that make up inner icons.A dictionary renderer is a renderer that uses a style file generated in ArcGIS Pro from a rule engine and is used to display types of advanced symbology on a map, such as military symbology. is commonly used to display military symbology. See the Display symbols with a dictionary renderer topic for details.
The following image shows a layer with a class breaks renderer. The renderer displays features as five classes of population, each with a different symbol (a darker or lighter shade of red).

A SimpleRenderer that uses a SimpleMarkerSymbol for displaying all features. This renderer could be applied to a FeatureLayer or GraphicsOverlay:
val simpleMarkerSymbol = SimpleMarkerSymbol( style = SimpleMarkerSymbolStyle.Triangle, color = Color.red, size = 10f)val simpleRenderer = SimpleRenderer(simpleMarkerSymbol)featureLayer.renderer = simpleRendererRaster layers
The following raster renderers are available to control how raster
-
HillshadeRenderer— Renders elevation data as shaded relief in grayscale, using a hypothetical sun position to calculate light and shadow. Use this renderer with single-band elevation rasterA raster is a matrix of cells (or pixels) organized into rows and columns (or a grid) where each cell contains a value representing information, such as temperature. Rasters include digital aerial photographs, imagery from satellites, digital pictures, and scanned maps. data in a raster layerA raster layer is a layer type that allows developers to display raster data in their applications. when you want to reveal terrain shape and depth. Common uses include DEM visualization, terrain context layers, and cartographic relief effects. -
BlendRenderer— Applies a color ramp and blends it with hillshade to emphasize high and low elevation while preserving terrain relief. Use this renderer when you need both terrain form and thematic elevation color in the same view. Common uses include hypsometric tinting and elevation maps with enhanced visual texture. -
ColormapRenderer— Maps discrete cell values to specific colors. Use this renderer for classified or thematic rasters where each category code needs a defined color. Common uses include land cover classes, suitability classes, risk zones, and other integer rasters. -
StretchRenderer— Stretches continuous raster values to improve visual contrast. Use this renderer when source values are concentrated in a narrow range and details are difficult to distinguish. Common uses include satellite imagery, grayscale band display, and elevation rasters. -
RgbRenderer— Combines selected raster bands into red, green, and blue channels. Use this renderer for multiband rasters when creating true-color or false-color composites. Common uses include natural color imagery, near-infrared composites, and vegetation-focused visual analysis.
The following image shows a rendered raster of Madagascar using a hillshade renderer to show terrain relief with light and shadow.

Styles
Layers can also be rendered using a style. Styles are containers that can store symbols, colors, and several other types of information used for rendering a layer. They promote consistency and standardization across your maps and scenes by defining a common set of symbology that can be shared between projects. In fact, the symbol galleries and color pickers you use when authoring maps and scenes in ArcGIS Pro or the ArcGIS Online Map Viewer are populated using styles. See the ArcGIS Pro Styles documentation for more information and a description of the types of styles.
Mobile style files
Mobile style files are one of several style types you can create in ArcGIS Pro. They let you apply symbol styles using a .stylx file that’s local to the device. This local file enables you to maintain style and branding consistency even when users are offline. Access symbols from the mobile style file using the SymbolStyle class.
// Create parks and trails feature layers. val parksServiceFeatureTable = ServiceFeatureTable(uri = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/ArcGIS/rest/services/Parks_and_Open_Space/FeatureServer/0") val parksFeatureLayer = FeatureLayer.createWithFeatureTable(parksServiceFeatureTable)
val trailsServiceFeatureTable = ServiceFeatureTable(uri = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/ArcGIS/rest/services/Trails/FeatureServer/0") val trailsFeatureLayer = FeatureLayer.createWithFeatureTable(trailsServiceFeatureTable)
map.operationalLayers.addAll(elements = listOf(parksFeatureLayer, trailsFeatureLayer))
// Create a symbol style instance using a mobile styles file on the device file system. var mobileStyle = SymbolStyle.createWithFile(styleFile = fileLocation)
coroutineScope.launch { mobileStyle.load().onFailure { it -> Log.e(this.javaClass.simpleName, "mobile styles file has an error: ${it.message.toString()}") return@launch }
// Get multilayer symbols from FireflyMobile.stylx using a list of one or more symbol identifiers (keys). val parksSymbol = mobileStyle.getSymbol(keys = listOf("FireflyPoly_8")).getOrThrow() val trailsSymbol = mobileStyle.getSymbol(keys = listOf("FireflyLine_5")).getOrThrow()
// Set the layer renderers to use the appropriate symbol from the mobile style. parksFeatureLayer.renderer = SimpleRenderer(parksSymbol) trailsFeatureLayer.renderer = SimpleRenderer(trailsSymbol) }Not all capabilities of ArcGIS Pro style files are supported in the mobile style file. The limitations are described in the Mobile styles section on the ArcGIS Pro Style page. For details on creating and applying a mobile style file, see the Create a mobile style for native apps blog.
ArcGIS vector tile layer styles
An ArcGIS vector tile layer

You can create your own style with the ArcGIS Vector Tile Style Editor. Your customized vector layers can then be saved to and read from ArcGIS Online.
WMS styles
A WMS
WMS servers provide clients with a list of supported styles for each layer. At run time, you can choose the style the WMS server uses to render map images. In general, styles are predefined and cannot be changed or added to.
The styles defined in the layer information can be inspected to determine the styles (if any) that are available. The style of a WMS