Class: GraphThemeLayer

GraphThemeLayer

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

new GraphThemeLayer(name, chartsType, options)

Usage
// 浏览器
<script type="text/javascript" src="https://iclient.supermap.io/dist/leaflet/iclient-leaflet.js"></script>
<script>
  new L.supermap.GraphThemeLayer(name, chartsType, options);
  
  // 弃用的写法
  L.supermap.graphThemeLayer(name, chartsType, options);
  
</script>

// ES6 Import
import { GraphThemeLayer } from '@supermap/iclient-leaflet';

new GraphThemeLayer(name, chartsType, options);

leaflet/overlay/GraphThemeLayer.js, line 12
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

指定创建专题图字段。

alwaysMapCRS boolean false 可选

要素坐标是否和地图坐标系一致,要素默认是经纬度坐标。

cache Object 可选

缓存。

charts Object 可选

图表。

id string 可选

专题图层 ID。默认使用 CommonUtil.createUniqueID("themeLayer_") 创建专题图层 ID。

opacity number 1 可选

图层透明度。

TFEvents Array 可选

专题要素事件临时存储。专题要素事件临时存储。

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]。如果不设置此参数,在取数据值时不对数据做小数位处理。

attribution string 'Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' title='SuperMap iServer' target='_blank'>SuperMap iServer</a></span>' 可选

版权描述信息。

Extends

Events

beforefeaturesadded

leaflet/overlay/GraphThemeLayer.js, line 80

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

Properties:
Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待添加的要素。

inherited changelayer

leaflet/overlay/theme/ThemeLayer.js, line 538

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

图层属性。

inherited featuresremoved

leaflet/overlay/theme/ThemeLayer.js, line 216

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

Properties:
Name Type Description
features Array.<FeatureVector>

删除失败的要素数组。

succeed boolean

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

Methods

addFeatures(features)

leaflet/overlay/GraphThemeLayer.js, line 73

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

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待添加的要素。

clear()

leaflet/overlay/GraphThemeLayer.js, line 346

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

clearCache()

leaflet/overlay/GraphThemeLayer.js, line 306

清除缓存数据。

createThematicFeature(feature)

leaflet/overlay/GraphThemeLayer.js, line 150

创建专题要素(图表)。

Name Type Description
feature Object

待创建的要素。

inherited destroyFeatures(features)

leaflet/overlay/theme/ThemeLayer.js, line 140

销毁要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector

将被销毁的要素。

drawCharts()

leaflet/overlay/GraphThemeLayer.js, line 172

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

inherited getEvents(){Object}

leaflet/overlay/theme/ThemeLayer.js, line 54

获取图层事件。

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

inherited getFeatureById(featureId){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 281

返回指定 ID 的矢量要素,不存在则返回 null。

Name Type Description
featureId number

要素 ID。

Returns:
Type Description
Array.<FeatureVector> 返回图层中的要素。

inherited getFeatures(filter){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 244

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

Name Type Description
filter function 可选

根据条件过滤要素的回调函数。

Returns:
Type Description
Array.<FeatureVector> 返回图层中的要素。

inherited getLocalXY(coordinate)

leaflet/overlay/theme/ThemeLayer.js, line 436

地理坐标转为像素坐标。

Name Type Description
coordinate Array

getShapesByFeatureID(featureID)

leaflet/overlay/GraphThemeLayer.js, line 198

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

Name Type Description
featureID number

要素 ID。

getWeightFieldValue(feature, weightField, defaultValue)

leaflet/overlay/GraphThemeLayer.js, line 360

获取权重字段的值。

Name Type Description
feature FeatureVector

矢量要素。

weightField Array.<string>

字段名数组。

defaultValue number

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

isChartInMap(mapPxBounds, chartPxBounds)

leaflet/overlay/GraphThemeLayer.js, line 283

判断图表是否在地图里。

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

leaflet/overlay/GraphThemeLayer.js, line 267

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

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(quadrilateral, quadrilateral2)

leaflet/overlay/GraphThemeLayer.js, line 220

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

Name Type Description
quadrilateral Array.<Object>

四边形节点数组。

quadrilateral2 Array.<Object>

第二个四边形节点数组。

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

inherited off(event, callback, context)

leaflet/overlay/theme/ThemeLayer.js, line 397

移除事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited on(event, callback, context)

leaflet/overlay/theme/ThemeLayer.js, line 381

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

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited onRemove(map)

leaflet/overlay/theme/ThemeLayer.js, line 72

删除某个地图。

Name Type Description
map L.Map

Leaflet Map 对象。

redraw()

leaflet/overlay/GraphThemeLayer.js, line 336

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

redrawThematicFeatures(bounds)

leaflet/overlay/GraphThemeLayer.js, line 103

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

Name Type Description
bounds L.Bounds

重绘的范围。

removeAllFeatures()

leaflet/overlay/GraphThemeLayer.js, line 326

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

removeFeatures(features)

leaflet/overlay/GraphThemeLayer.js, line 315

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

Name Type Description
features Array.<FeatureVector> | FeatureVector | function

待删除的要素或用于条件删除的回调函数。

setChartsType(chartsType)

leaflet/overlay/GraphThemeLayer.js, line 63

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

Name Type Description
chartsType string

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

inherited setOpacity(opacity)

leaflet/overlay/theme/ThemeLayer.js, line 346

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

Name Type Description
opacity number

不透明度。

inherited deprecated toFeature(features){FeatureVector}

leaflet/overlay/theme/ThemeLayer.js, line 496

转为 iClient 要素,该方法将被弃用,由 ThemeLayer#toiClientFeature 代替。

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待转要素。

Returns:
Type Description
FeatureVector 转换后的 iClient 要素。

inherited toiClientFeature(features){Array.<FeatureVector>}

leaflet/overlay/theme/ThemeLayer.js, line 461

转为 iClient 要素。

Name Type Description
features Array.<ServerFeature> | Array.<ThemeFeature> | Array.<GeoJSONObject> | ServerFeature | ThemeFeature | GeoJSONObject

待转要素。

Returns:
Type Description
Array.<FeatureVector> 转换后的 iClient 要素。

inherited update(bounds)

leaflet/overlay/theme/ThemeLayer.js, line 311

更新图层。

Name Type Description
bounds L.Bounds

图层范围。