Skip to content
import TileInfo from "@arcgis/core/layers/support/TileInfo.js";
Inheritance:
TileInfoAccessor
Since
ArcGIS Maps SDK for JavaScript 4.0

Contains information about the tiling scheme for TileLayers, ElevationLayers, ImageryTileLayers, VectorTileLayers, and WebTileLayers.

TileInfo defines properties such as tile format, the level of details (LOD) at which the cache has tiles, the size of the tiles in pixels, and the screen resolution for which the tiles are intended to be most commonly displayed.

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

dpi

Property
Type
number

The dots per inch (DPI) of the tiling scheme. If a DPI is chosen that does not match the resolution of the output device, the scale of the map tile will appear incorrect. The default value is 96.

Default value
96

format

Property
Type
Format

Image format of the cached tiles.

isWrappable

readonly Property
Type
boolean
Since
ArcGIS Maps SDK for JavaScript 4.5

Indicates if the tiling scheme supports wrap around.

lods

autocast Property
Type
LOD[]

An array of levels of detail that define the tiling scheme.

origin

autocast Property
Type
Point

The tiling scheme origin. The upper left corner of the tiling scheme, in coordinates of the spatial reference of the source data.

size

Property
Type
[ number, number ]

Size of tiles in pixels.

Example
// sets the height and width of each tile to [ 256, 256 ]
tileInfo.size = 256;

spatialReference

autocast Property
Type
SpatialReference

The spatial reference of the tiling schema.

Methods

MethodSignatureClass
create
static
create(options?: TileInfoCreateOptions): TileInfo
fromJSON
inherited static
fromJSON(json: any): any
scaleToZoom(scale: number): number
toJSON
inherited
toJSON(): any
zoomToScale(zoom: number): number

create

static Method
Signature
create (options?: TileInfoCreateOptions): TileInfo

A convenience method used to create a new TileInfo instance with preset properties like lods. Optionally, properties such as size, scales[], and a [SpatialReference](https://developers.arcgis.com/javascript/latest/references/core/geometry/SpatialReference/) can also be set to calculate lods for each TileInfo. This is useful in cases where the default amount of LODs provided are not sufficient. For example, if wanting to set the view's scale 1

, additional LODs must be created. An example of setting this scale and creating additional LODs is provided in the example snippet below.

See also
Parameters
ParameterTypeDescriptionRequired
options

An object that contains the size, scales, and/or SpatialReference used to compute the new TileInfo instance.

Returns
TileInfo

A new TileInfo instance. The scales determine what lods to create. The DPI defaults to 96 and currently cannot be modified.

Examples
// This snippet shows how to create a TileInfo instance using the default
// settings and passing its resulting LODs to a MapView's constraints
let view = new MapView({
container: "viewDiv",
map: map,
constraints: {
lods: TileInfo.create().lods
}
});
// This snippet shows how to set the MapView scale 1:1 while generating additional LODs for the MapView.constraints.
const spatialReference = new SpatialReference({
wkid: 2154
});
const center = new Point({
x: 0,
y: 0,
spatialReference
});
// Create LODs from level 0 to 31
const tileInfo = TileInfo.create({
spatialReference,
numLODs: 32
});
const lods = tileInfo.lods;
let view = new MapView({
container: "viewDiv",
map,
scale: 1,
center,
spatialReference,
constraints: {
lods: lods,
snapToZoom: false
}
});

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters
ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

scaleToZoom

Method
Signature
scaleToZoom (scale: number): number

Utility method used to convert a scale value to its corresponding zoom value.

Parameters
ParameterTypeDescriptionRequired
scale

The scale value to convert.

Returns
number

The returned zoom value.

Example
// get the zoom value for the vector tile layer at the given scale
// then set the view.zoom to match layer's zoom level.
view.when(function(){
view.zoom = layer.tileInfo.scaleToZoom(9027);
});

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.

zoomToScale

Method
Signature
zoomToScale (zoom: number): number

Utility method used to convert a zoom value to its corresponding scale value.

Parameters
ParameterTypeDescriptionRequired
zoom

The zoom value to convert.

Returns
number

The returned scale value.

Example
// get the scale value for the vector tile layer at the view zoom level
// then set the view.scale to match layer's scale.
view.when(function(){
view.scale = vectorLayer.tileInfo.zoomToScale(view.zoom);
});

Type definitions

Format

Type definition

Image format of the cached tiles.

Type
"png" | "png8" | "png24" | "png32" | "jpg" | "dib" | "tiff" | "emf" | "ps" | "pdf" | "gif" | "svg" | "svgz" | "mixed" | "lerc" | "lerc2d" | "raw" | "pbf"

TileInfoCreateOptions

Type definition

Defines the size, scales, and/or SpatialReference used to generate a new TileInfo instance, and is used with the create() method.

size

Property
Type
number | undefined

The size of each tile in pixels.

Default value
256

spatialReference

Property
Type
SpatialReference | undefined

The spatial reference for the new TileInfo instance. If the spatial reference is not SpatialReference.WGS84 nor SpatialReference.WebMercator, the origin of the TileInfo is 0.0.

Default value
WebMercator

scales

Property
Type
number[] | undefined

An array of scale values to use for the TileInfo. If none are specified, the scales from the ArcGIS Online basemaps are used from level 0 through 24.

Default value
The scales provided by ArcGIS Online basemaps

numLODs

Property
Type
number | undefined

Total number of LODs to create.

Default value
24