TileInfo

AMD: require(["esri/layers/support/TileInfo"], (TileInfo) => { /* code goes here */ });
ESM: import TileInfo from "@arcgis/core/layers/support/TileInfo.js";
Class: esri/layers/support/TileInfo
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.

Property Overview

Any properties can be set, retrieved or listened to. See the Watch for changes topic.
Show inherited properties Hide inherited properties
Name Type Summary Class

The name of the class.

Accessor

The dots per inch (DPI) of the tiling scheme.

TileInfo

Image format of the cached tiles.

TileInfo

Indicates if the tiling scheme supports wrap around.

TileInfo

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

TileInfo

The tiling scheme origin.

TileInfo

Size of tiles in pixels.

TileInfo

The spatial reference of the tiling schema.

TileInfo

Property Details

declaredClass

Inherited
Property
declaredClass Stringreadonly
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.7 Accessor since 4.0, declaredClass added at 4.7.

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

dpi

Property
dpi 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
format String

Image format of the cached tiles.

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

isWrappable

Property
isWrappable Boolean
Since: ArcGIS Maps SDK for JavaScript 4.5 TileInfo since 4.0, isWrappable added at 4.5.

Indicates if the tiling scheme supports wrap around.

lods

Property
lods LOD[]autocast
Autocasts from Object[]

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

origin

Property
origin Pointautocast

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

size

Property
size Number[]

Size of tiles in pixels.

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

spatialReference

Property
spatialReference SpatialReferenceautocast

The spatial reference of the tiling schema.

Method Overview

Show inherited methods Hide inherited methods
Name Return Type Summary Class

Adds one or more handles which are to be tied to the lifecycle of the object.

Accessor

A convenience method used to create a new TileInfo instance with preset properties like LODs.

TileInfo
*

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product.

TileInfo

Returns true if a named group of handles exist.

Accessor

Removes a group of handles owned by the object.

Accessor

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

TileInfo

Converts an instance of this class to its ArcGIS portal JSON representation.

TileInfo

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

TileInfo

Method Details

addHandles

Inherited
Method
addHandles(handleOrHandles, groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, addHandles added at 4.25.

Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();
Parameters
handleOrHandles WatchHandle|WatchHandle[]

Handles marked for removal once the object is destroyed.

groupKey *
optional

Key identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.

create

Method
create(options){TileInfo}static

A convenience method used to create a new TileInfo instance with preset properties like LODs. Optionally, properties such as size, scales[], and a 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:1, additional LODs must be created. An example of setting this scale and creating additional LODs is provided in the example snippet below.

Parameters
Specification
options Object
optional

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

Specification
size Number
optional
Default Value: 256

The size of each tile in pixels.

numLODs Number
optional
Default Value: 24

Total number of LODs to create.

spatialReference SpatialReference
optional
Default Value: WebMercator

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

scales Number[]
optional
Default Value: The scales provided by ArcGIS Online basemaps

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.

Returns
Type Description
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

Method
fromJSON(json){*}static

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.

Parameter
json Object

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
Type Description
* Returns a new instance of this class.

hasHandles

Inherited
Method
hasHandles(groupKey){Boolean}
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, hasHandles added at 4.25.

Returns true if a named group of handles exist.

Parameter
groupKey *
optional

A group key.

Returns
Type Description
Boolean Returns true if a named group of handles exist.
Example
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}

removeHandles

Inherited
Method
removeHandles(groupKey)
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25 Accessor since 4.0, removeHandles added at 4.25.

Removes a group of handles owned by the object.

Parameter
groupKey *
optional

A group key or an array or collection of group keys to remove.

Example
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

scaleToZoom

Method
scaleToZoom(scale){Number}

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

Parameter
scale Number

The scale value to convert.

Returns
Type Description
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

Method
toJSON(){Object}

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

Returns
Type Description
Object The ArcGIS portal JSON representation of an instance of this class.

zoomToScale

Method
zoomToScale(zoom){Number}

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

Parameter
zoom Number

The zoom value to convert.

Returns
Type Description
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);
});

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.