#### # new GraphThemeLayer(name, chartsType, options)

统计专题图通过为每个要素绘制统计图表来反映其对应的专题值的大小。它可同时表示多个字段属性信息，在区域本身与各区域之间形成横向和纵向的对比。
统计专题图多用于具有相关数量特征的地图上，比如表示不同地区多年的粮食产量、GDP、人口等，不同时段客运量、地铁流量等。目前提供的统计图类型有：柱状图（Bar），折线图（Line），饼图（Pie），三维柱状图（Bar3D），点状图（Point），环状图（Ring）。

#### 参数:

名称 | 类型 | 默认值 | 描述
--- | --- | --- | ---
`name` | string |  | 专题图表名称。
`chartsType` | string |  | 图表类型。目前可用："Bar"，"Bar3D"，"Line"，"Point"，"Pie"，"Ring"。
`options` | Object |  | 待设置的参数。
`isOverLay` | boolean | true | 是否进行压盖处理，如果设为 true，图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表。
`themeFields` | string |  | 指定创建专题图字段。
`cache` | Object |  | 缓存。
`charts` | Object |  | 图表。
`id` | string |  | 专题图层 ID。默认使用 CommonUtil.createUniqueID("themeLayer_") 创建专题图层 ID。
`opacity` | number | 1 | 图层透明度。
`chartsSetting` | Object |  | 各类型图表的 chartsSetting 对象可设属性请参考具体图表模型类的注释中对 chartsSetting 对象可设属性的描述。chartsSetting 对象通常都具有以下 5 个基础可设属性:
`chartsSetting.width` | number |  | 专题要素（图表）宽度。
`chartsSetting.height` | number |  | 专题要素（图表）高度。
`chartsSetting.codomain` | Array.<number> |  | 值域，长度为 2 的一维数组，第一个元素表示值域下限，第二个元素表示值域上限。
`chartsSetting.XOffset` | number |  | 专题要素（图表）在 X 方向上的偏移值，单位像素。
`chartsSetting.YOffset` | number |  | 专题要素（图表）在 Y 方向上的偏移值，单位像素。
`chartsSetting.dataViewBoxParameter` | Array.<number> |  | 数据视图框 dataViewBox 参数，它是指图表框 chartBox （由图表位置、图表宽度、图表高度构成的图表范围框）在左、下，右，上四个方向上的内偏距值，长度为 4 的一维数组。
`chartsSetting.decimalNumber` | number |  | 数据值数组 dataValues 元素值小数位数，数据的小数位处理参数，取值范围：[0, 16]。如果不设置此参数，在取数据值时不对数据做小数位处理。

### 继承关系

- zondy.themelayer.ThemeLayer

### 方法

#### # addFeatures(features)

向专题图图层中添加数据。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`features` | L.features | 待添加的要素。

Overrides:
  - zondy.themelayer.ThemeLayer#addFeatures

#### # clear()

清除图层。清除的内容包括数据（features） 、专题要素、缓存。

#### # clearCache(mapPxBounds, chartPxBounds)

判断图表是否大小合适，超过地图范围的1/4的不绘制。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`mapPxBounds` | zondy.Bounds | 地图像素范围。
`chartPxBounds` | Array.<Object> | 图表范围的四边形节点数组。 例如：[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

#### # clearCache()

清除缓存数据。

#### # createThematicFeature(feature)

创建专题要素（图表）。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`feature` | zondy.Feature | 待创建的要素。

#### # destroyFeatures(features)

销毁要素。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`features` | Array.<zondy.Feature.Vector> | 将被销毁的要素。

Inherited From:
  - zondy.themelayer.ThemeLayer#destroyFeatures

#### # drawCharts()

绘制图表。包含压盖处理。

#### # getEvents()

获取图层事件。

Inherited From:
  - zondy.themelayer.ThemeLayer#getEvents

返回值:

返回图层支持的事件。

类型: Object

#### # getFeatureBy(property, value)

在专题图的要素数组 features 里面遍历每一个 feature，当 feature[property] === value 时，返回此 feature（并且只返回第一个）。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`property` | string | 要的某个属性名。
`value` | string | 对应属性名得值。

Inherited From:
  - zondy.themelayer.ThemeLayer#getFeatureBy

#### # getFeatureById(featureId)

通过给定一个 ID，返回对应的矢量要素,如果不存在则返回 null。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`featureId` | number | 要素 ID。

Inherited From:
  - zondy.themelayer.ThemeLayer#getFeatureById

#### # getFeatures()

查看当前图层中的有效数据。

Inherited From:
  - zondy.themelayer.ThemeLayer#getFeatures

返回值:

返回图层中的有效数据。

类型: Array

#### # getFeaturesByAttribute(attrName, attrValue)

通过给定一个属性的 key 值和 value 值，返回所有匹配的要素数组。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`attrName` | string | key 值。
`attrValue` | string | value 值。

Inherited From:
  - zondy.themelayer.ThemeLayer#getFeaturesByAttribute

返回值:

返回所有匹配的要素数组。

类型: Array

#### # getLocalXY(coordinate)

地理坐标转为像素坐标。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`coordinate` | Array |

Inherited From:
  - zondy.themelayer.ThemeLayer#getLocalXY

#### # getShapesByFeatureID(featureID)

通过 FeatureID 获取 feature 关联的所有图形。如果不传入此参数，函数将返回所有图形。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`featureID` | number | 要素 ID。

#### # getWeightFieldValue(feature, weightField, defaultValue)

获取权重字段的值。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`feature` | zondy.Feature.Vector | 矢量要素。
`weightField` | Array.<string> | 字段名数组。
`defaultValue` | number | 当通过 weightField 获取不到权重值时，使用 defaultValue 作为权重值。

#### # initialize(name, chartsType, options)

初始化。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`name` | string | 专题图名。
`chartsType` | string | 图表类型。目前可用："Bar"，"Bar3D"，"Line"，"Point"，"Pie"，"Ring"。
`options` | Object | 需要设置的参数对象。

#### # isChartInMap(mapPxBounds, chartPxBounds)

判断图表是否在地图里。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`mapPxBounds` | zondy.Bounds | 地图像素范围。
`chartPxBounds` | Array.<Object> | 图表范围的四边形节点数组。 例如：[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]。

#### # isPointInPoly(pt, poly)

判断一个点是否在多边形里面。(射线法)

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`pt` | Object | 需要判定的点对象，该对象含有属性x(横坐标)，属性y(纵坐标)。
`poly` | Array.<Object> | 多边形节点数组。 例如一个四边形：[{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}]

#### # isQuadrilateralOverLap(rect1, rect2)

判断两个四边形是否有压盖。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`rect1` | Array.<Object> | 四边形节点数组。
`rect2` | Array.<Object> | 第二个四边形节点数组。

##### 示例

    [{"x":1,"y":1},{"x":3,"y":1},{"x":6,"y":4},{"x":2,"y":10},{"x":1,"y":1}];

#### # lineIntersection(a1, a2, b1, b2)

判断两条线段是不是有交点。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`a1` | zondy.geometry.Point | 第一条线段的起始节点。
`a2` | zondy.geometry.Point | 第一条线段的结束节点。
`b1` | zondy.geometry.Point | 第二条线段的起始节点。
`b2` | zondy.geometry.Point | 第二条线段的结束节点。

返回值:

如果相交返回交点，如果不相交返回两条线段的位置关系。

类型: Object

#### # off(event, callback, context)

移除专题要素事件监听。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`event` | Event | 监听事件。
`callback` | function | 回调函数。
`context` | string | 信息。

Inherited From:
  - zondy.themelayer.ThemeLayer#off

#### # on(event, callback, context)

添加专题要素事件监听。添加专题要素事件监听。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`event` | Event | 监听事件。
`callback` | function | 回调函数。
`context` | string | 信息。

Inherited From:
  - zondy.themelayer.ThemeLayer#on

#### # onRemove(map)

删除某个地图。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`map` | L.Map | 要删除的地图。

Inherited From:
  - zondy.themelayer.ThemeLayer#onRemove

#### # redraw()

重绘该图层，成功则返回 true，否则返回 false。

Overrides:
  - zondy.themelayer.ThemeLayer#redraw

#### # redrawThematicFeatures(bounds)

重绘所有专题要素 此方法包含绘制专题要素的所有步骤，包含用户数据到专题要素的转换，压盖处理，缓存等步骤。地图漫游时调用此方法进行图层刷新。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`bounds` | L.bounds | 重绘的范围。

Overrides:
  - zondy.themelayer.ThemeLayer#redrawThematicFeatures

#### # removeAllFeatures()

清除当前图层所有的矢量要素。

Overrides:
  - zondy.themelayer.ThemeLayer#removeAllFeatures

#### # removeFeatures(features)

从专题图中删除 feature。这个函数删除所有传递进来的矢量要素（数据）。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`features` | Object | 待删除的要素。

Overrides:
  - zondy.themelayer.ThemeLayer#removeFeatures

#### # setChartsType(chartsType)

设置图表类型，此函数可动态改变图表类型。在调用此函数前请通过 chartsSetting 为新类型的图表做相关配置。图表类型，目前支持："Bar", "Bar3D", "Line","Point","Pie","Ring"。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`chartsType` | string | 图表类型。目前可用："Bar", "Bar3D", "Line","Point","Pie","Ring"。

#### # setOpacity(opacity)

设置图层的不透明度,取值 [0-1] 之间。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`opacity` | number | 不透明度。

Inherited From:
  - zondy.themelayer.ThemeLayer#setOpacity

#### # update(bounds)

更新图层。

#### 参数:

名称 | 类型 | 描述
--- | --- | ---
`bounds` | L.bounds | 图层范围。

Inherited From:
  - zondy.themelayer.ThemeLayer#update

### 事件

#### # beforefeaturesadded

向专题图图层中添加数据之前触发。

##### 属性:

Name | Type | Description
--- | --- | ---
`features` | L.features | 待添加的要素。

#### # changelayer

图层属性改变之后触发。

##### 属性:

Name | Type | Description
--- | --- | ---
`layer` | Object | 图层。
`property` | string | 图层属性。

Inherited From:
  - zondy.themelayer.ThemeLayer#event:changelayer

#### # featuresremoved

删除的要素成功之后触发。

##### 属性:

Name | Type | Description
--- | --- | ---
`features` | Array.<zondy.Feature.Vector> | 事件对象。
`succeed` | boolean | 要输是否删除成功，true 为删除成功，false 为删除失败。

Inherited From:
  - zondy.themelayer.ThemeLayer#event:featuresremoved