# Class: TileGrid

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/tilegrid/TileGrid~TileGrid

    import TileGrid from 'ol/tilegrid/TileGrid.js';

Base class for setting the grid pattern for sources accessing tiled-image servers.

#### new TileGrid(options)

tilegrid/TileGrid.js, line 65

  Name | Type | Description
  --- | --- | ---
  `extent` | Extent | undefined | Extent for the tile grid. No tiles outside this extent will be requested by `TileSource` sources. When no `origin` or `origins` are configured, the `origin` will be set to the top-left corner of the extent.
  `minZoom` | number (defaults to 0) | Minimum zoom.
  `origin` | Coordinate | undefined | The tile grid origin, i.e. where the `x` and `y` axes meet (`[z, 0, 0]`). Tile coordinates increase left to right and downwards. If not specified, `extent` or `origins` must be provided.
  `origins` | Array<Coordinate> | undefined | Tile grid origins, i.e. where the `x` and `y` axes meet (`[z, 0, 0]`), for each zoom level. If given, the array length should match the length of the `resolutions` array, i.e. each resolution can have a different origin. Tile coordinates increase left to right and downwards. If not specified, `extent` or `origin` must be provided.
  `resolutions` | Array.<number> | Resolutions. The array index of each resolution needs to match the zoom level. This means that even if a `minZoom` is configured, the resolutions array will have a length of `maxZoom + 1`.
  `sizes` | Array<Size> | undefined | Number of tile rows and columns of the grid for each zoom level. If specified the values define each zoom level's extent together with the `origin` or `origins`. A grid `extent` can be configured in addition, and will further limit the extent for which tile requests are made by sources. If the bottom-left corner of an extent is used as `origin` or `origins`, then the `y` value must be negative because OpenLayers tile coordinates use the top left as the origin.
  `tileSize` | number | Size | undefined | Tile size. Default is `[256, 256]`.
  `tileSizes` | Array.<(number|module:ol/size~Size)> | undefined | Tile sizes. If given, the array length should match the length of the `resolutions` array, i.e. each resolution can have a different tile size.

### Subclasses

- WMTSTileGrid

### Methods

#### forEachTileCoord(extent, zoom, callback)

tilegrid/TileGrid.js, line 235

  Call a function with each tile coordinate for a given extent and zoom level.

  Name | Type | Description
  --- | --- | ---
  `extent` | Extent | Extent.
  `zoom` | number | Integer zoom level.
  `callback` | function | Function called with each tile coordinate.

#### getExtent(){Extent}

tilegrid/TileGrid.js, line 291

  Get the extent for this tile grid, if it was configured.

  ##### Returns:

  Extent.

#### getMaxZoom(){number}

tilegrid/TileGrid.js, line 300

  Get the maximum zoom level for the grid.

  ##### Returns:

  Max zoom.

#### getMinZoom(){number}

tilegrid/TileGrid.js, line 309

  Get the minimum zoom level for the grid.

  ##### Returns:

  Min zoom.

#### getOrigin(z){Coordinate}

tilegrid/TileGrid.js, line 319

  Get the origin for the grid at the given zoom level.

  Name | Type | Description
  --- | --- | ---
  `z` | number | Integer zoom level.

  ##### Returns:

  Origin.

#### getResolution(z){number}

tilegrid/TileGrid.js, line 340

  Get the resolution for the given zoom level.

  Name | Type | Description
  --- | --- | ---
  `z` | number | Integer zoom level.

  ##### Returns:

  Resolution.

#### getResolutions(){Array.<number>}

tilegrid/TileGrid.js, line 349

  Get the list of resolutions for the tile grid.

  ##### Returns:

  Resolutions.

#### getTileCoordExtent(tileCoord, tempExtent){Extent}

tilegrid/TileGrid.js, line 466

  Get the extent of a tile coordinate.

  Name | Type | Description
  --- | --- | ---
  `tileCoord` | TileCoord | Tile coordinate.
  `tempExtent` | Extent | undefined | Temporary extent object.

  ##### Returns:

  Extent.

#### getTileCoordForCoordAndResolution(coordinate, resolution, opt_tileCoord){TileCoord}

tilegrid/TileGrid.js, line 488

  Get the tile coordinate for the given map coordinate and resolution. This method considers that coordinates that intersect tile boundaries should be assigned the higher tile coordinate.

  Name | Type | Description
  --- | --- | ---
  `coordinate` | Coordinate | Coordinate.
  `resolution` | number | Resolution.
  `opt_tileCoord` | TileCoord | undefined | Destination module:ol/tilecoord~TileCoord object.

  ##### Returns:

  Tile coordinate.

#### getTileCoordForCoordAndZ(coordinate, z, opt_tileCoord){TileCoord}

tilegrid/TileGrid.js, line 579

  Get a tile coordinate given a map coordinate and zoom level.

  Name | Type | Description
  --- | --- | ---
  `coordinate` | Coordinate | Coordinate.
  `z` | number | Integer zoom level, e.g. the result of a `getZForResolution()` method call
  `opt_tileCoord` | TileCoord | undefined | Destination module:ol/tilecoord~TileCoord object.

  ##### Returns:

  Tile coordinate.

#### getTileSize(z){number | Size}

tilegrid/TileGrid.js, line 605

  Get the tile size for a zoom level. The type of the return value matches the `tileSize` or `tileSizes` that the tile grid was configured with. To always get an `Size`, run the result through `toSize`.

  Name | Type | Description
  --- | --- | ---
  `z` | number | Z.

  ##### Returns:

  Tile size.

#### getZForResolution(resolution, opt_direction){number}

tilegrid/TileGrid.js, line 642

  Name | Type | Description
  --- | --- | ---
  `resolution` | number | Resolution.
  `opt_direction` | number | NearestDirectionFunction | undefined | If 0, the nearest resolution will be used. If 1, the nearest higher resolution (lower Z) will be used. If -1, the nearest lower resolution (higher Z) will be used. Default is 0. Use a `NearestDirectionFunction` for more precise control. For example to change tile Z at the midpoint of zoom levels
      function(value, high, low) {
        return value - low * Math.sqrt(high / low);
      }

  ##### Returns:

  Z.