Skip to content
import { getThemes, getSchemes, getSchemeByName, getSchemesByTag, cloneScheme } from "@arcgis/core/smartMapping/symbology/relationship.js";
Since
ArcGIS Maps SDK for JavaScript 4.9

Object containing helper methods for getting optimal symbol schemes used to create relationship (bivariate choropleth) visualizations. The getSchemes() returns color schemes best suited to the given basemap for this visualization style.

Functions

getThemes

Function

Returns metadata for the available themes. If a basemap is provided, returns themes that work best with the given basemap.

Signature
getThemes (basemap?: Basemap | string): Theme[]
Parameters
ParameterTypeDescriptionRequired
basemap

The Esri basemap string or object that will be used with the returned theme(s).

Returns
Theme[]

Returns an object containing information about the available themes for the given basemap.

getSchemes

Function

Returns a primary scheme and secondary schemes defining symbol properties for relationship-based (bivariate choropleth) data-driven visualizations in a Layer. The basemap parameter determines the color of the symbols used to visualize each feature. The geometryType determines which type of symbol to return.

Signature
getSchemes (params: GetSchemesParameters): RelationshipSchemes | null | undefined
Parameters
ParameterTypeDescriptionRequired
params

The function parameters.

Returns
RelationshipSchemes | null | undefined

Returns an object containing the optimal relationship color scheme to use for the given basemap; it also contains secondary schemes.

Example
// gets the primary scheme for the features of the given geometry type and basemap
const schemes = relationshipSchemes.getSchemes({
basemap: map.basemap,
geometryType: featureLayer.geometryType
});
// the best default scheme for the layer and basemap
const primaryScheme = schemes.primaryScheme;

getSchemeByName

Function
Since
ArcGIS Maps SDK for JavaScript 4.12

Returns a relationship scheme with the provided name.

Signature
getSchemeByName (params: GetSchemesByNameParameters): RelationshipScheme | null | undefined
Parameters
ParameterTypeDescriptionRequired
params

The function parameters.

Returns
RelationshipScheme | null | undefined

Returns the relationship scheme with the given name.

Example
// Returns the Blueberry Parfait scheme
let blueberryScheme = relationshipSchemes.getSchemeByName({
basemap: map.basemap,
geometryType: featureLayer.geometryType,
name: "Blueberry Parfait"
});

getSchemesByTag

Function
Since
ArcGIS Maps SDK for JavaScript 4.12

Returns an array of relationship schemes with the provided tags. These schemes define symbol properties for relationship visualizations.

Signature
getSchemesByTag (params: GetSchemesByTagParameters): RelationshipScheme[]
Parameters
ParameterTypeDescriptionRequired
params

The function parameters.

Returns
RelationshipScheme[]

Returns an array of relationship schemes either including or excluding the provided tags.

Example
let schemes = relationshipSchemes.getSchemesByTag({
basemap: map.basemap,
geometryType: featureLayer.geometryType,
includedTags: [ "tritanopia" ],
excludedTags: [ "grayscale" ]
});

cloneScheme

Function

Clones a relationship (bivariate color) scheme object.

Signature
cloneScheme (scheme: RelationshipScheme | null | undefined): RelationshipScheme | null | undefined
Parameters
ParameterTypeDescriptionRequired
scheme

The relationship scheme object to clone.

Returns
RelationshipScheme | null | undefined

Returns a clone of the given relationship scheme object.

Example
// clones the primary scheme returned from the getSchemes() method
const relationshipScheme = primaryScheme.clone();

Type definitions

GetSchemesParameters

Type definition

basemap

Property
Type
Basemap | string | null | undefined

The Esri basemap to pair with the visualization. This value indicates the best symbol colors for visualizing features against the given basemap. If you have a non-Esri basemap (e.g. a VectorTileLayer basemap with a custom style) or no basemap at all, then use the basemapTheme parameter instead of this parameter.

geometryType

Property
Type
"point" | "multipoint" | "polyline" | "polygon" | "mesh" | "multipatch" | null

The geometry type of the features to visualize.

basemapTheme

Property
Type
BasemapTheme | null | undefined

If you have a non-Esri basemap (e.g. a VectorTileLayer basemap with a custom style) or no basemap at all, use this parameter to indicate whether the background of the visualization is light or dark.

theme

Property
Type
"default" | null | undefined

Determines which set of primary and secondary color schemes to return.

Default value
default

worldScale

Property
Type
boolean | null | undefined

Indicates if the size units of the scheme will be in meters. This should be true when the scheme is intended for 3D volumetric symbology. A view must be provided if this property is set to true.

view

Property
Type
SceneView | null | undefined

The SceneView instance in which the scheme will be used. This property is only applicable when the scheme will be used in conjunction with 3D symbols.

GetSchemesByNameParameters

Type definition

name

Property
Type
string

The name of the scheme to retrieve.

GetSchemesByTagParameters

Type definition

includedTags

Property
Type
string[] | null | undefined

When provided, only schemes containing all the matching tags will be returned.

Known Tags: light | dark | reds | yellows | oranges | greens | blues | purples | pinks | browns | grays | bright | subdued | deuteranopia | protanopia | tritanopia | grayscale | types | dot-density

excludedTags

Property
Type
string[] | null | undefined

When provided, only schemes missing all the provided tags will be returned.

Known Tags: light | dark | reds | yellows | oranges | greens | blues | purples | pinks | browns | grays | bright | subdued | deuteranopia | protanopia | tritanopia | grayscale | types | dot-density