# TileLayer
查阅Leaflet API

#### new mars2d.layer.TileLayer(options)
layer/tileLayer/TileLayer.js 53

XYZ瓦片图层

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`url` | String |  | 用于请求瓦片图块的URL模板。它具有以下关键字: `{z}`: 切片方案中切片的级别。零级是四叉树金字塔的根。 `{x}`:切片方案中的图块X坐标，其中0是最西端的图块。 `{y}`: 切片方案中的图块Y坐标，其中0是最北的图块。 `{reverseY}`:切片方案中的图块Y坐标，其中0是最南端的图块,用于TMS服务。 `{s}`:可用的子域之一，用于克服浏览器对每个主机的并发请求数的限制。
`subdomains` | String | Array.<String> | `''` | 可选 瓦片服务的子域名。可以以一个字符串的形式（每个字母都是子域名）或一个字符串数组的形式传递。
`proxy` | String |  | 可选 代理服务URL
`opacity` | Number | `1` | 可选 瓦片的不透明度。
`minZoom` | Number | `0` | 可选 最小的缩放级别
`maxZoom` | Number | `18` | 可选 最大的缩放级别
`maxNativeZoom` | Number |  | 可选 瓦片来源可用的最大缩放倍数。如果指定，则所有缩放级别上的图块maxNativeZoom将高于将从maxNativeZoom级别加载并自动缩放。
`minNativeZoom` | Number |  | 可选 瓦片来源可用的最小缩放数。如果指定，所有缩放级别上的图块minNativeZoom将从minNativeZoom级别加载并自动缩放。
`zIndex` | Number | `1` | 可选 瓦片层的显式zIndex
`rectangle` | Object |  | 可选 瓦片数据的矩形区域范围
参数名称 | 类型 | 描述信息
--- | --- | ---
`xmin` | Number | 最小经度值, -180 至 180
`xmax` | Number | 最大纬度值, -180 至 180
`ymin` | Number | 最小纬度值, -90 至 90
`ymax` | Number | 最大纬度值, -90 至 90
`bbox` | Array.<Number> |  | 可选 bbox规范的瓦片数据的矩形区域范围,与rectangle二选一即可。
`bounds` | L.LatLngBounds |  | 可选 leaflet原生写法，同rectangle或bbox
`errorTileUrl` | String |  | 可选 显示加载瓦片失败时，显示的图片的url
`tms` | Boolean |  | 可选 如果此值为true，反转切片Y轴的编号（对于TMS服务需将此项打开）
`zoomReverse` | Boolean | `false` | 可选 如果设置为true，则URL网址中使用的缩放z数字将被颠倒（maxZoom - zoom而不是zoom）
`xOffset` | Number |  | 可选 对URL中地图的缩放级别x值加上xOffset值
`yOffset` | Number |  | 可选 对URL中地图的缩放级别y值加上yOffset值
`zOffset` | Number |  | 可选 对URL中地图的缩放级别z值加上zOffset值
`customTags` | function |  | 可选 自定义对瓦片请求参数处理
`tileSize` | Number | L.Point | `256` | 可选 网格中瓦片的宽度和高度。如果宽度和高度相等，则使用数字，否则L.point(width, height)。
`className` | String |  | 可选 要分配给瓦片图层的自定义类名称
`keepBuffer` | Number | `2` | 可选 当平移地图时，在卸载它们之前，先保留许多行和列的数据块。
`detectRetina` | Boolean | `false` | 可选 如果此项为true，并且用户是视网膜显示模式，会请求规定大小一般的四个切片和一个地区内一个更大的缩放级别来利用高分辨率.
`crossOrigin` | Boolean | `false` | 可选 如果为true，则所有图块将其crossOrigin属性设置为“*”。如果要访问像素数据，则需要这样做。
`updateInterval` | Number | `200` | 可选 当平移时，updateInterval毫秒不会更新一次瓦片。
`updateWhenZooming` | Boolean | `true` | 可选 默认情况下，平滑缩放动画（touch zoom 或flyTo()） 会在整个缩放级别更新网格图层。设置此选项false将仅在平滑动画结束时更新网格层。
`noWrap` | Boolean | `false` | 可选 该层是否在子午线断面。 如果为true，GridLayer只能在低缩放级别显示一次。当地图CRS 不包围时，没有任何效果。 可以结合使用bounds 以防止在CRS限制之外请求瓦片。
`chinaCRS` | ChinaCRS |  | 可选 标识瓦片的国内坐标系（用于自动纠偏或加偏），自动将瓦片转为map对应的chinaCRS类型坐标系。
`customColor` | String | function |  | 可选 设置自定义颜色
`id` | String | Number | `createGuid()` | 可选 图层id标识
`pid` | String | Number | `-1` | 可选 图层父级的id，一般图层管理中使用
`name` | String | `''` | 可选 图层名称
`show` | Boolean | `true` | 可选 图层是否显示
`pane` | String | `'tilePane'` | 可选 指定图层添加到地图的哪个pane的DIV中，用于控制不同层级显示的，优先级高于zIndex。

##### 参考:

- `支持的事件类型`

### 继承自

- L.TileLayer

### 属性值

#### bounds : L.LatLngBounds
layer/tileLayer/TileLayer.js 274

图层矩形边界

#### 只读 container : HTMLElement
layer/tileLayer/TileLayer.js 152

获取图层对应的DOM容器

#### customColor : string|function
layer/tileLayer/TileLayer.js 375

设置自定义颜色

#### 只读 hasOpacity : boolean
layer/tileLayer/TileLayer.js 300

是否可以调整透明度

#### 只读 hasZIndex : Boolean
layer/tileLayer/TileLayer.js 253

是否可以调整图层顺序（在同类型图层间）

#### id : String|Number
layer/tileLayer/TileLayer.js 185

对象的id标识

#### 只读 isAdded : Boolean
layer/tileLayer/TileLayer.js 163

是否已添加到地图

#### name : String
layer/tileLayer/TileLayer.js 198

名称 标识

#### opacity : Number
layer/tileLayer/TileLayer.js 286

透明度

#### pid : String|Number
layer/tileLayer/TileLayer.js 172

对象的pid标识

#### show : Boolean
layer/tileLayer/TileLayer.js 211

显示隐藏状态

#### url : String
layer/tileLayer/TileLayer.js 238

图层服务地址

默认值: `1.0`

#### zIndex : Number
layer/tileLayer/TileLayer.js 261

图层顺序，数字大的在上面。

### 方法

#### addEventParent(obj) → TileLayer
layer/tileLayer/TileLayer.js 637

添加抛出事件到父类，它将接收传播的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

#### addTo(map) → TileLayer
layer/tileLayer/TileLayer.js 553

将图层添加到地图

参数名称 | 类型 | 描述信息
--- | --- | ---
`map` | Map | 地图对象

##### 返回值:

当前对象本身，可以链式调用

#### bringToBack() → TileLayer
layer/tileLayer/TileLayer.js 534

将图层置于所有图层之下

##### 返回值:

当前对象本身,可以链式调用

#### bringToFront() → TileLayer
layer/tileLayer/TileLayer.js 525

将图层置于所有图层之上

##### 返回值:

当前对象本身,可以链式调用

#### destroy(noDel) → void
layer/tileLayer/TileLayer.js 507

销毁当前对象

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`noDel` | Boolean | `false` | 可选 false:会自动delete释放所有属性，true：不delete绑定的变量

##### 返回值:

无

#### fire(type, data, propagate) → void
layer/tileLayer/TileLayer.js 598

触发指定类型的事件。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | String | EventType |  | 事件类型
`data` | Object |  | 可选 传输的数据或对象，可在事件回调方法中event对象中获取进行使用
`propagate` | BaseClass | Object | `null` | 可选 将事件传播给父类 (用addEventParent设置)

##### 返回值:

无

#### flyTo(options) → TileLayer
layer/tileLayer/TileLayer.js 492

定位地图至当前图层数据区域

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | Object | 可选 定位参数，包括:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`paddingTopLeft` | L.Point | Array.<Number> |  | 可选 设置在将视图设置为适合边界时不应考虑的地图容器左上角的填充量。如果您在地图上有一些控件重叠式（如侧边栏），而且您不希望它们遮挡您正在缩放的对象，则很有用。
`paddingBottomRight` | L.Point | Array.<Number> |  | 可选 同上，不考虑地图容器右下角时使用。
`padding` | L.Point | Array.<Number> |  | 可选 相当于将左上和右下填充设置为相同的值。
`maxZoom` | Number |  | 可选 最大层级
`animate` | Boolean | `true` | 可选 是否进行动画缩放。false时始终重置视图完全没有动画。
`duration` | Number | `0.25` | 可选 动画平移的持续时间，以秒为单位。
`easeLinearity` | Number | `0.25` | 可选 平移动画宽松的曲率因子 Cubic Bezier curve曲线的第三个参数。1.0表示线性动画，而这个数字越小，曲线越鞠躬。
`noMoveStart` | Boolean | `false` | 可选 如果true，平移不会movestart在启动时触发事件（内部用于平移惯性）。

##### 返回值:

当前对象本身，可以链式调用

#### getBounds() → L.LatLngBounds
layer/tileLayer/TileLayer.js 474

获取图层矩形边界(构造参数设置的)

##### 返回值:

矩形边界

#### getTileUrl(coords) → String
layer/tileLayer/TileLayer.js 319

仅在内部调用，返回给定坐标的瓦片的URL。扩展类TileLayer可以覆盖此功能，以提供自定义图块URL命名方案。

参数名称 | 类型 | 描述信息
--- | --- | ---
`coords` | Object | 瓦片的xyz信息

##### 返回值:

瓦片图片URL地址

#### listens(type, propagate) → Boolean
layer/tileLayer/TileLayer.js 625

是否有绑定指定的事件

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | String | EventType | 事件类型
`propagate` | Object | 可选 是否判断指定的父类 (用addEventParent设置的)

##### 返回值:

是否存在

#### off(types, fn, context) → void
layer/tileLayer/TileLayer.js 585

解除绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | String | EventType | Object | 可选 事件类型，Object时删除一组类型/侦听器对。
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### on(type, fn, context) → void
layer/tileLayer/TileLayer.js 572

绑定指定类型事件监听器

参数名称 | 类型 | 描述信息
--- | --- | ---
`type` | String | EventType | Object | 事件类型，当是Object时可以添加一组类型/侦听器对，例如 {click: onClick, mousemove: onMouseMove}
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### once(types, fn, context) → void
layer/tileLayer/TileLayer.js 611

绑定一次性执行的指定类型事件监听器 与on类似，监听器只会被触发一次，然后被删除。

参数名称 | 类型 | 描述信息
--- | --- | ---
`types` | String | EventType | Object | 可选 事件类型，Object时删除一组类型/侦听器对。
`fn` | function | 可选 绑定的监听器回调方法
`context` | Object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

无

#### remove() → TileLayer
layer/tileLayer/TileLayer.js 563

将图层从地图上移除

##### 返回值:

当前对象本身，可以链式调用

#### removeEventParent(obj) → TileLayer
layer/tileLayer/TileLayer.js 647

移除抛出事件到父类

参数名称 | 类型 | 描述信息
--- | --- | ---
`obj` | Object | 父类对象

##### 返回值:

当前对象本身,可以链式调用

#### setBounds(bounds) → void
layer/tileLayer/TileLayer.js 466

设置图层矩形边界

参数名称 | 类型 | 描述信息
--- | --- | ---
`bounds` | L.LatLngBounds | 矩形边界

##### 返回值:

#### setOpacity(opacity) → TileLayer
layer/tileLayer/TileLayer.js 543

设置覆盖的透明度

参数名称 | 类型 | 描述信息
--- | --- | ---
`opacity` | Number | 透明度，取值范围 0-1

##### 返回值:

当前对象本身,可以链式调用

### 定义的类型

#### mars2d.layer.TileLayer.EventType
layer/tileLayer/TileLayer.js 27

当前类支持的`EventType`事件类型（包括自定义字符串事件名）

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`loading` | String | 当栅格图层开始加载瓦片时触发
`load` | String | 当栅格图层加载可视瓦片时触发
`tileloadstart` | String | 当瓦片请求或开始加载时触发
`tileload` | String | 当加载瓦片时触发
`tileerror` | String | 当加载瓦片出错时触发
`tileunload` | String | 当瓦片移除时触发
`add` | String | 在图层添加到地图上之后触发
`remove` | String | 在图层从地图上移除之后触发
`popupopen` | String | 当绑定到当前图层的Popup弹窗打开时触发
`popupclose` | String | 当绑定到当前图层的Popup弹窗关闭时触发
`tooltipopen` | String | 当Tooltip提示框绑定到这个图层并打开时触发
`tooltipclose` | String | 当Tooltip提示框绑定到这个图层并关闭时触发

##### 使用示例:

    //绑定监听事件
    tileLayer.on('load', function (event) {
      console.log('触发了事件',event)
    });

##### 参考:

- BaseClass#on
- BaseClass#off