Class: GraphThemeLayer

GraphThemeLayer

new zondy.themelayer.GraphThemeLayer(name, chartsType, options)

document/theme/GraphThemeLayer.js, line 12

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

Name Type Description
name string

专题图表名称。

chartsType string

图表类型。目前可用:"Bar","Bar3D","Line","Point","Pie","Ring"。

options Object

待设置的参数。

Name Type Default Description
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 个基础可设属性:

Name Type Description
width number

专题要素(图表)宽度。

height number

专题要素(图表)高度。

codomain Array.<number>

值域,长度为 2 的一维数组,第一个元素表示值域下限,第二个元素表示值域上限。

XOffset number 可选

专题要素(图表)在 X 方向上的偏移值,单位像素。

YOffset number 可选

专题要素(图表)在 Y 方向上的偏移值,单位像素。

dataViewBoxParameter Array.<number> 可选

数据视图框 dataViewBox 参数,它是指图表框 chartBox (由图表位置、图表宽度、图表高度构成的图表范围框)在左、下,右,上四个方向上的内偏距值,长度为 4 的一维数组。

decimalNumber number 可选

数据值数组 dataValues 元素值小数位数,数据的小数位处理参数,取值范围:[0, 16]。如果不设置此参数,在取数据值时不对数据做小数位处理。

Extends

Events

beforefeaturesadded

document/theme/GraphThemeLayer.js, line 79

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

Properties:
Name Type Description
features L.features

待添加的要素。

inherited changelayer

document/theme/ThemeLayer.js, line 485

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

图层属性。

inherited featuresremoved

document/theme/ThemeLayer.js, line 193

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

Properties:
Name Type Description
features Array.<zondy.Feature.Vector>

事件对象。

succeed boolean

要输是否删除成功,true 为删除成功,false 为删除失败。

Methods

addFeatures(features)

document/theme/GraphThemeLayer.js, line 72

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

Name Type Description
features L.features

待添加的要素。

clear()

document/theme/GraphThemeLayer.js, line 502

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

clearCache(mapPxBounds, chartPxBounds)

document/theme/GraphThemeLayer.js, line 446

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

Name Type Description
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()

document/theme/GraphThemeLayer.js, line 461

清除缓存数据。

createThematicFeature(feature)

document/theme/GraphThemeLayer.js, line 165

创建专题要素(图表)。

Name Type Description
feature zondy.Feature

待创建的要素。

inherited destroyFeatures(features)

document/theme/ThemeLayer.js, line 125

销毁要素。

Name Type Description
features Array.<zondy.Feature.Vector>

将被销毁的要素。

drawCharts()

document/theme/GraphThemeLayer.js, line 194

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

inherited getEvents(){Object}

document/theme/ThemeLayer.js, line 36

获取图层事件。

Returns:
Type Description
Object 返回图层支持的事件。

inherited getFeatureBy(property, value)

document/theme/ThemeLayer.js, line 236

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

Name Type Description
property string

要的某个属性名。

value string

对应属性名得值。

inherited getFeatureById(featureId)

document/theme/ThemeLayer.js, line 252

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

Name Type Description
featureId number

要素 ID。

inherited getFeatures(){Array}

document/theme/ThemeLayer.js, line 221

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

Returns:
Type Description
Array 返回图层中的有效数据。

inherited getFeaturesByAttribute(attrName, attrValue){Array}

document/theme/ThemeLayer.js, line 261

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

Name Type Description
attrName string

key 值。

attrValue string

value 值。

Returns:
Type Description
Array 返回所有匹配的要素数组。

inherited getLocalXY(coordinate)

document/theme/ThemeLayer.js, line 413

地理坐标转为像素坐标。

Name Type Description
coordinate Array

getShapesByFeatureID(featureID)

document/theme/GraphThemeLayer.js, line 220

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

Name Type Description
featureID number

要素 ID。

getWeightFieldValue(feature, weightField, defaultValue)

document/theme/GraphThemeLayer.js, line 516

获取权重字段的值。

Name Type Description
feature zondy.Feature.Vector

矢量要素。

weightField Array.<string>

字段名数组。

defaultValue number

当通过 weightField 获取不到权重值时,使用 defaultValue 作为权重值。

initialize(name, chartsType, options)

document/theme/GraphThemeLayer.js, line 41

初始化。

Name Type Description
name string

专题图名。

chartsType string

图表类型。目前可用:"Bar","Bar3D","Line","Point","Pie","Ring"。

options Object

需要设置的参数对象。

isChartInMap(mapPxBounds, chartPxBounds)

document/theme/GraphThemeLayer.js, line 399

判断图表是否在地图里。

Name Type Description
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)

document/theme/GraphThemeLayer.js, line 379

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

Name Type Description
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)

document/theme/GraphThemeLayer.js, line 243

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

Name Type Description
rect1 Array.<Object>

四边形节点数组。

rect2 Array.<Object>

第二个四边形节点数组。

Example
[{"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){Object}

document/theme/GraphThemeLayer.js, line 331

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

Name Type Description
a1 zondy.geometry.Point

第一条线段的起始节点。

a2 zondy.geometry.Point

第一条线段的结束节点。

b1 zondy.geometry.Point

第二条线段的起始节点。

b2 zondy.geometry.Point

第二条线段的结束节点。

Returns:
Type Description
Object 如果相交返回交点,如果不相交返回两条线段的位置关系。

inherited off(event, callback, context)

document/theme/ThemeLayer.js, line 372

移除专题要素事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited on(event, callback, context)

document/theme/ThemeLayer.js, line 355

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

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited onRemove(map)

document/theme/ThemeLayer.js, line 54

删除某个地图。

Name Type Description
map L.Map

要删除的地图。

redraw()

document/theme/GraphThemeLayer.js, line 492

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

redrawThematicFeatures(bounds)

document/theme/GraphThemeLayer.js, line 107

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

Name Type Description
bounds L.bounds

重绘的范围。

removeAllFeatures()

document/theme/GraphThemeLayer.js, line 482

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

removeFeatures(features)

document/theme/GraphThemeLayer.js, line 470

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

Name Type Description
features Object

待删除的要素。

setChartsType(chartsType)

document/theme/GraphThemeLayer.js, line 62

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

Name Type Description
chartsType string

图表类型。目前可用:"Bar", "Bar3D", "Line","Point","Pie","Ring"。

inherited setOpacity(opacity)

document/theme/ThemeLayer.js, line 321

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

Name Type Description
opacity number

不透明度。

inherited update(bounds)

document/theme/ThemeLayer.js, line 285

更新图层。

Name Type Description
bounds L.bounds

图层范围。