@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
83 lines (79 loc) • 3.91 kB
TypeScript
/**
* Object containing helper methods for generating optimal symbols for
* location-only visualizations.
* The [getSchemes()](https://developers.arcgis.com/javascript/latest/references/core/smartMapping/symbology/location/#getSchemes) method is used to generate symbol properties best suited to
* the given geometry type and basemap.
*
* @since 4.2
*/
import type Basemap from "../../Basemap.js";
import type { LocationScheme, LocationSchemes, BasemapTheme, Theme } from "./types.js";
import type { MapViewOrSceneView } from "../../views/MapViewOrSceneView.js";
/**
* Returns metadata for the available themes. If a basemap is provided, returns themes that work best
* with the given basemap.
*
* @param basemap - The [Esri basemap string](https://developers.arcgis.com/javascript/latest/references/core/Map/#basemap)
* or object that will be used with the returned theme(s).
* @returns Returns an object containing information about the available themes for the given basemap.
*/
export function getThemes(basemap?: Basemap | string | null | undefined): Theme[];
/**
* Returns a primary scheme and secondary schemes defining symbol properties for
* location-only visualizions in
* a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) or [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/).
* The `basemap` parameter determines the color of the
* graphics used to visualize each feature. The `geometryType` determines which type of symbol to return.
*
* @param params - The function parameters.
* @returns Returns an object containing the optimal location scheme (and secondary schemes) to use for the given basemap.
* @example
* // gets the primary scheme for the features of the given geometry type and basemap
* let schemes = locationSchemes.getSchemes({
* basemap: map.basemap,
* geometryType: featureLayer.geometryType
* });
*
* // the best default scheme for the layer, basemap, and theme
* let primaryScheme = schemes.primaryScheme;
*/
export function getSchemes(params: GetSchemesParameters): LocationSchemes | null | undefined;
/**
* Clones a location scheme object.
*
* @param scheme - The location scheme object to clone.
* @returns Returns
* a clone of the given location scheme object.
* @example
* // clones the primary scheme returned from the getSchemes() method
* let locationScheme = primaryScheme.clone();
*/
export function cloneScheme(scheme: LocationScheme | null | undefined): LocationScheme | null | undefined;
export interface GetSchemesParameters {
/**
* The Esri basemap to pair with the visualization. This
* value indicates the best symbol color 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.
*/
basemap?: Basemap | string | null;
/** The geometry type of the features to visualize. */
geometryType: "point" | "multipoint" | "polyline" | "polygon" | "mesh" | "multipatch" | null;
/**
* 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`.
*/
basemapTheme?: BasemapTheme | null;
/**
* 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`.
*/
worldScale?: boolean | null;
/**
* 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.
*/
view?: MapViewOrSceneView | null;
}