Class: GraphThemeLayer

GraphThemeLayer

统计专题图图层类。统计专题图是通过为每个要素或记录绘制统计图来反映其对应的专题值的大小。 统计专题图可以基于多个变量,反映多种属性,即可以将多个专题值绘制在一个统计图上,并且每个区域都会有一幅表示该区域各专题值的统计图。 通过统计专题图可以在区域本身与各区域之间形成横向和纵向的对比。多用于具有相关数量特征的地图上, 比如表示不同地区多年的粮食产量、GDP、人口等,不同时段客运量、地铁流量等。

new GraphThemeLayer(name, chartsType, options)

Usage
// 浏览器
<script type="text/javascript" src="https://iclient.supermap.io/dist/mapboxgl/iclient-mapboxgl.js"></script>
<script>
  new mapboxgl.supermap.GraphThemeLayer(name, chartsType, options);
  
</script>

// ES6 Import
import { GraphThemeLayer } from '@supermapgis/iclient-mapboxgl';

new GraphThemeLayer(name, chartsType, options);

mapboxgl/overlay/GraphThemeLayer.js, line 12
Name Type Description
name string

图层名。

chartsType string

图表类别。

options Object

参数。

Name Type Default Description
id string 可选

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

loadWhileAnimating boolean true 可选

是否实时重绘。

map mapboxgl.Map

MapBoxGL Map 对象。

opacity number 1 可选

图层不透明度。

themeFields string

指定创建专题图字段。

isOverLay boolean true 可选

是否进行压盖处理,如果设为 true,图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表。

chartsType string 可选

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

chartsSetting Object

符号 Circle 配置对象。

Name Type Default Description
codomain Array.<number>

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

maxR number 可选

圆形的最大半径。

minR number 可选

圆形的最小半径。

fillColor string

圆形的填充色,如:fillColor: "#FFB980"。

circleStyle Object

圆形的基础 style,此参数控制圆形基础样式,优先级低于 circleStyleByFields 和 circleStyleByCodomain。

decimalNumber number

数据值数组 dataValues 元素值小数位数,数据的小数位处理参数,取值范围:[0, 16]。默认不对数据做小数位处理。

circleHoverStyle Object

圆形 hover 状态时的样式,circleHoverAble 为 true 时有效。

circleHoverAble boolean true 可选

是否允许圆形使用 hover 状态。同时设置 circleHoverAble 和 circleClickAble 为 false,可以直接屏蔽图形对专题图层事件的响应。

circleClickAble boolean true 可选

是否允许圆形被点击。同时设置 circleHoverAble 和 circleClickAble 为 false,可以直接屏蔽图形对专题图层事件的响应。

Fires

Extends

Members

idstring

专题图图层 ID。

loadWhileAnimatingboolean

是否实时重绘。(当绘制大数据量要素的情况下会出现卡顿,建议把该参数设为 false)。

Default Value:
true

MapBoxGL Map 对象。

namestring

专题图图层名称。

opacitynumber

图层不透明度。

Default Value:
1

visibilityboolean

图层是否可见。

Default Value:
true

Events

beforefeaturesadded

mapboxgl/overlay/GraphThemeLayer.js, line 73

要素添加之前触发。

Properties:
Name Type Description
features ServerFeature

要被添加的要素。

inherited changelayer

mapboxgl/overlay/theme/ThemeLayer.js, line 198

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

被改变的属性。

inherited featuresremoved

mapboxgl/overlay/theme/ThemeLayer.js, line 270

要素删除之后触发。

Properties:
Name Type Description
features Array.<FeatureVector>

未被成功删除的要素。

succeed boolean

删除成功与否。

Methods

addFeatures(features)

mapboxgl/overlay/GraphThemeLayer.js, line 67

向专题图图层中添加数据,支持的要素类型为:SuperMap iServer 返回的 feature JSON 对象。

Name Type Description
features ServerFeature

待添加的要素。

clear()

mapboxgl/overlay/GraphThemeLayer.js, line 401

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

clearCache()

mapboxgl/overlay/GraphThemeLayer.js, line 360

清除缓存。

createThematicFeature(feature)

mapboxgl/overlay/GraphThemeLayer.js, line 134

向专题图图层中添加数据,支持的要素类型为:SuperMap iServer 返回的 feature JSON 对象。

Name Type Description
feature Object

待添加的要素。

inherited destroyFeatures(features)

mapboxgl/overlay/theme/ThemeLayer.js, line 142

销毁要素。

Name Type Description
features Array.<FeatureVector> | FeatureVector

将被销毁的要素。

inherited display(display)

mapboxgl/overlay/theme/ThemeLayer.js, line 176

隐藏或者显示图层。(通过对 CSS 控制产生即时效果,重新渲染失效。)

Name Type Description
display boolean 可选

是否显示图层。

drawCharts()

mapboxgl/overlay/GraphThemeLayer.js, line 155

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

inherited getFeatureBy(property, value){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 308

在专题图的要素中,获取第一个feature[property] === value的矢量要素。

Name Type Description
property string

属性名称。

value string

属性值。

Returns:
Type Description
FeatureVector 矢量要素。

inherited getFeatureById(featureId){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 326

获取指定 featureId 的矢量要素。

Name Type Description
featureId string

矢量要素的属性 ID。

Returns:
Type Description
FeatureVector 对应 featureId 的矢量要素,不存在则返回 null。

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

mapboxgl/overlay/theme/ThemeLayer.js, line 291

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

Name Type Description
filter function 可选

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

Returns:
Type Description
Array.<FeatureVector> 用户加入图层的有效数据。

inherited getFeaturesByAttribute(attrName, attrValue){Array.<FeatureVector>}

mapboxgl/overlay/theme/ThemeLayer.js, line 336

通过给定一个属性的 key 值和 value 值,获取匹配的要素数组。

Name Type Description
attrName string

属性的 key 值。

attrValue string

属性的 value 值。

Returns:
Type Description
Array.<FeatureVector> 要素数组。

inherited getLocalXY(coordinate){Array}

mapboxgl/overlay/theme/ThemeLayer.js, line 412

地理坐标转为像素坐标。

Name Type Description
coordinate Object 可选

坐标位置。

Returns:
Type Description
Array 长度为 2 的像素坐标数组,第一个元素表示 x 坐标,第二个元素表示 y 坐标。

getShapesByFeatureID(featureID)

mapboxgl/overlay/GraphThemeLayer.js, line 262

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

Name Type Description
featureID number

要素 ID。

isChartInMap(mapPxBounds, chartPxBounds)

mapboxgl/overlay/GraphThemeLayer.js, line 340

判断图表是否在地图里。

Name Type Description
mapPxBounds Bounds

地图像素范围。

chartPxBounds Array.<Object>

图表范围的四边形节点数组。

isPointInPoly(pt, poly)

mapboxgl/overlay/GraphThemeLayer.js, line 325

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

Name Type Description
pt Object

需要判定的点对象,该对象含有属性 x (横坐标),属性 y (纵坐标)。

poly Array.<Object>

多边形节点数组。

isQuadrilateralOverLap(quadrilateral, quadrilateral2)

mapboxgl/overlay/GraphThemeLayer.js, line 282

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

Name Type Description
quadrilateral Array.<Object>

四边形节点数组。

quadrilateral2 Array.<Object>

第二个四边形节点数组。

inherited moveTo(layerID, before)

mapboxgl/overlay/theme/ThemeLayer.js, line 586

将图层移动到某个图层之前。

Name Type Default Description
layerID string

待插入的图层 ID。

before boolean true 可选

是否将本图层插入到图层 ID 为 layerID 的图层之前。

inherited off(event, callback, context)

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

移除专题要素事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited on(event, callback, context)

mapboxgl/overlay/theme/ThemeLayer.js, line 365

添加专题要素事件监听。

Name Type Description
event Event

监听事件。

callback function

回调函数。

context string

信息。

inherited onAdd()

mapboxgl/overlay/theme/ThemeLayer.js, line 83

添加该图层。

redraw()

mapboxgl/overlay/GraphThemeLayer.js, line 388

重绘该图层。

redrawThematicFeatures()

mapboxgl/overlay/GraphThemeLayer.js, line 92

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

inherited refresh()

mapboxgl/overlay/theme/ThemeLayer.js, line 108

强制刷新当前热点显示,在图层热点数组发生变化后调用,更新显示。

removeAllFeatures()

mapboxgl/overlay/GraphThemeLayer.js, line 379

移除所有的要素。

removeFeatures(features)

mapboxgl/overlay/GraphThemeLayer.js, line 369

从专题图中删除要素。这个函数删除所有传递进来的矢量要素。参数中的要素数组中的每一项,必须是已经添加到当前图层中的 feature。

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

要删除的要素。

inherited removeFromMap()

mapboxgl/overlay/theme/ThemeLayer.js, line 577

移除图层。

setChartsType(chartsType)

mapboxgl/overlay/GraphThemeLayer.js, line 57

设置图表类型,此函数可动态改变图表类型。在调用此函数前请通过 chartsSetting 为新类型的图表做相关配置。

Name Type Description
chartsType string 可选

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

inherited setOpacity(opacity)

mapboxgl/overlay/theme/ThemeLayer.js, line 185

设置图层的不透明度,取值范围:[0-1]。

Name Type Description
opacity number 可选

不透明度,取值[0-1]之间。

inherited setVisibility(visibility)

mapboxgl/overlay/theme/ThemeLayer.js, line 163

设置图层可见性。

Name Type Description
visibility boolean 可选

是否显示图层(当前地图的 resolution 在最大最小 resolution 之间)。

inherited deprecated toFeature(features){FeatureVector}

mapboxgl/overlay/theme/ThemeLayer.js, line 465

转为 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>}

mapboxgl/overlay/theme/ThemeLayer.js, line 431

转为 iClient 要素。

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

待转要素。

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