# CustomTilingScheme

#### new Cesium.CustomTilingScheme(options)
MapGIS/TilingScheme/CustomTilingScheme.js 94

引用`CustomProjection`的几何图形自定义瓦片平铺方案

Name | Type | Description
--- | --- | ---
`options` | Object | optional 构造函数的参数对象，包含的属性如下：
Name | Type | Default | Description
--- | --- | --- | ---
`ellipsoid` | Ellipsoid | `Ellipsoid.WGS84` | optional 表面被瓦片平铺的参考椭球体，默认为WGS84椭球体
`wkt` | String |  | optional 投影坐标系的通识文本（Well Known Text）
`wkid` | String |  | optional 投影坐标系的通识编码（Well Known ID）
`tileInfo` | Object |  | optional 瓦片的属性信息，地图服务可以不提供该参数，该参数有固定的格式要求，详见下方示例
`axisDirection` | Object |  | optional 瓦片组织方向(裁图方向)。axisDirection.x=1代表x轴由左往右为正，axisDirection.x=-1代表x轴由右往左为正；axisDirection.y=1代表x轴由下往上为正，axisDirection.y=-1代表x轴由上往下为正。例如wmts的axisDirection为{x:1,y:-1}。
`rectangleSouthwest` | Cartesian2 |  | optional 投影矩形范围的西南角
`rectangleNortheast` | Cartesian2 |  | optional 投影矩形范围的东北角
`proj4` | Object |  | optional 投影变换对象

##### Example:

    // 瓦片的属性信息
    const tileInfo = {
      dpi: 0,
      format: 'PNG',
      size: [256, 256], // 瓦片宽高的像素大小
      origin: {
        coordinates: [471388.6716802692, 3471062.732487645], // 裁图原点
        type: 'Point', // 裁图原点类型
      },
      lods: [
        {
          level: 0,
          resolution: 661.4583333333334,
          scale: 2500000,
        },
        {
          level: 1,
          resolution: 330.7291666666667,
          scale: 1250000,
        },
        {
          level: 2,
          resolution: 165.36458333333334,
          scale: 625000,
        },
        {
          level: 3,
          resolution: 82.68229166666667,
          scale: 312500,
        },
        {
          level: 4,
          resolution: 41.341145833333336,
          scale: 156250,
        },
        {
          level: 5,
          resolution: 20.670572916666668,
          scale: 78125,
        }
      ]
    }

    // 瓦片的四至范围
    const extent = {
      xmin: 471388.6716802692,
      ymin: 3316805.3361792937,
      xmax: 603520.9945763454,
      ymax: 3471062.732487645,
    }

    // 创建自定义瓦片切分规则
    const tilingScheme = new Cesium.CustomTilingScheme({
      ellipsoid: Cesium.Ellipsoid.WGS84,
      wkid: 4547,
      wkt: '+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs', // https://epsg.io/4547
      tileInfo, // 瓦片的属性信息，地图服务可以不提供该参数
      rectangleSouthwest: new Cesium.Cartesian2(extent.xmin, extent.ymin), // 投影矩形范围的西南角
      rectangleNortheast: new Cesium.Cartesian2(extent.xmax, extent.ymax), // 投影矩形范围的东北角
      proj4, // 投影变换对象
    })

##### See:

- GeographicTilingScheme
- WebMercatorTilingScheme

### Members

#### ellipsoid : Ellipsoid
MapGIS/TilingScheme/CustomTilingScheme.js 269

获取此瓦片平铺方案所使用的参考椭球体

#### projection : CustomProjection
MapGIS/TilingScheme/CustomTilingScheme.js 291

获取此瓦片平铺方案所对应的投影方式

#### rectangle : Rectangle
MapGIS/TilingScheme/CustomTilingScheme.js 280

获取此瓦片平铺方案所覆盖的矩形范围

#### wkid : String
MapGIS/TilingScheme/CustomTilingScheme.js 302

获取此瓦片平铺方案所对应的投影方式的wkid

#### wkt : String
MapGIS/TilingScheme/CustomTilingScheme.js 313

获取此瓦片平铺方案所对应的投影方式的wkt

### Methods

#### getNumberOfXTilesAtLevel(level) → Number
MapGIS/TilingScheme/CustomTilingScheme.js 326

获取指定详细级别X方向上的瓦片总数

Name | Type | Description
--- | --- | ---
`level` | Number | 详细级别

##### Returns:

给定level详细级别中X方向的瓦片数量

#### getNumberOfYTilesAtLevel(level) → Number
MapGIS/TilingScheme/CustomTilingScheme.js 339

获取指定详细级别Y方向上的瓦片总数

Name | Type | Description
--- | --- | ---
`level` | Number | 详细级别

##### Returns:

给定level详细级别中Y方向的瓦片数量

#### positionToTileXY(position, level, result) → Cartesian2
MapGIS/TilingScheme/CustomTilingScheme.js 474

计算一个坐标点在某一详细级别中位于某一瓦片的X、Y坐标

Name | Type | Description
--- | --- | ---
`position` | Cartographic | 坐标点
`level` | Number | 详细级别
`result` | Cartesian2 | optional 保存结果的`Cartesian2`对象，若未定义则创建新的`Cartesian2`对象并返回

##### Returns:

返回指定的'result'，如果'result'未定义，则为包含矩形的`Cartesian2`新对象

#### rectangleToNativeRectangle(rectangle, result) → Rectangle
MapGIS/TilingScheme/CustomTilingScheme.js 354

将以地理坐标经纬度弧度指定的矩形转换到此瓦片平铺方案的投影坐标系

Name | Type | Description
--- | --- | ---
`rectangle` | Rectangle | 要进行投影转换的矩形范围
`result` | Rectangle | optional 保存结果的`Rectangle`对象，若未定义则创建新的`Rectangle`对象并返回

##### Returns:

返回指定的'result'，如果'result'未定义，则为包含矩形的`Rectangle`新对象

#### tileXYToNativeRectangle(x, y, level, result) → Rectangle
MapGIS/TilingScheme/CustomTilingScheme.js 380

将瓦片平铺的X、Y坐标和详细级别转换为以此瓦片平铺方案的投影坐标系表示的矩形

Name | Type | Description
--- | --- | ---
`x` | Number | 瓦片在X方向上的坐标
`y` | Number | 瓦片在Y方向上的坐标
`level` | Number | 详细级别
`result` | Rectangle | optional 保存结果的`Rectangle`对象，若未定义则创建新的`Rectangle`对象并返回

##### Returns:

返回指定的'result'，如果'result'未定义，则为包含矩形的`Rectangle`新对象

#### tileXYToRectangle(x, y, level, result) → Rectangle
MapGIS/TilingScheme/CustomTilingScheme.js 424

将瓦片平铺的X、Y坐标和高度转换为以弧度表示的矩形范围

Name | Type | Description
--- | --- | ---
`x` | Number | 瓦片在X方向上的坐标
`y` | Number | 瓦片在Y方向上的坐标
`level` | Number | 详细级别
`result` | Rectangle | optional 返回指定的'result'，如果'result'未定义，则为包含矩形的`Rectangle`新对象

##### Returns:

返回指定的'result'，如果'result'未定义，则为包含矩形的`Rectangle`新对象