统计专题图图层。
统计专题图通过为每个要素绘制统计图表来反映其对应的专题值的大小。它可同时表示多个字段属性信息,在区域本身与各区域之间形成横向和纵向的对比。 统计专题图多用于具有相关数量特征的地图上,比如表示不同地区多年的粮食产量、GDP、人口等,不同时段客运量、地铁流量等。允许一次分析多个数值型变量, 即可以将多个变量的值绘制在一个统计图上。目前提供的统计图类型有:柱状图(Bar),折线图(Line),饼图(Pie),三维柱状图(Bar3D),点状图(Point), 环状图(Ring)。
SuperMap iClient for JavaScript 的库文件不包含图表类文件,在使用客户端统计专题图时需要单独引入所需的图表类文件。 SuperMap iClient for JavaScript 产品包中提供的图表类文件所在目录是:”产品包根目录/examples/js/graph”。
SuperMap. |
统计专题图图层。 |
Properties | |
chartsSetting | {Object} 图表配置对象,必设属性。chartsSetting 对象的可设属性根据图表类型的不同具有较大差异, 各类型图表的 chartsSetting 对象可设属性请参考图表模型类的注释中对 chartsSetting 对象可设属性的描述。 |
isOverLay | {Boolean} 是否进行压盖处理,如果设为 true,图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表, 例如:图层已绘制好图表A,现在准备绘制图表B,压盖处理程序会先检查图表B是否对已绘制好图表A产生压盖, 只有当图表B和图表A范围完全不相交时,图表B才会被图层绘制出来。默认值:true。 |
overlayWeightField | {String} 压盖判断权重字段名称,此属性字段是是用户数据(feature) attributes 中包含的字段,且字段对应的值的类型必须是数值型(Number)。 此属性字段的值将作为用户数据(feature)所对应图表的压盖处理权重值。压盖处理权重值的规则是:权重值高的图表优先执行压盖判断,有权重的图表优先于无权重图表执行压盖判断。 注意:压盖判断权重值高的图表不一定优先显示,考虑以下情况:三个压盖处理权重值依次降低的图表,第一个图表(权重值最高)已显示; 第二个图表(权重值次之)在进行压盖判断时发现与第一个图表产生压盖,不显示;第三个图表(权重值最低)在进行压盖判断时发现它不对已显示图表产生压盖,显示此图表; 这样权重值低的第三个图表会在图层中显示,权重值高的第二个图表不会显示。 |
themeFields | {Array} 指定用于统计图表制作的属性字段名称。此属性字段是是用户数据(feature) attributes 中包含的字段, 且字段对应的值的类型必须是数值型(Number)。必设属性。 |
Constructor | |
SuperMap. |
构造函数,创建一个统计专题图层。 |
Functions | |
addFeatures | 向专题图图层中添加数据 , 统计专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。 |
clear | 清除图层。清除的内容包括数据(features) 、专题要素、缓存。 |
destroy | 销毁图层,释放资源。调用此函数后,图层对象的所有属性将被字为空。 |
getFeatureBy | 在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。 |
getFeatureById | 通过给定一个 id,返回对应的矢量要素。 |
getFeaturesByAttribute | 通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。 |
on | 添加专题要素事件监听。 |
redraw | 重绘该图层,成功则返回true,否则返回false。 |
removeAllFeatures | 清除当前图层所有的矢量要素。 |
removeFeatures | 从专题图中删除 feature。这个函数删除所有传递进来的矢量要素(数据)。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。 |
setChartsType | 设置图表类型,此函数可动态改变图表类型。 在调用此函数前请通过 chartsSetting 为新类型的图表做相关配置。 |
setOpacity | 设置图层的不透明度,取值[0-1]之间。 |
un | 移除专题要素事件监听。 |
{Object} 图表配置对象,必设属性。chartsSetting 对象的可设属性根据图表类型的不同具有较大差异, 各类型图表的 chartsSetting 对象可设属性请参考图表模型类的注释中对 chartsSetting 对象可设属性的描述。
所有图表类型的 chartsSetting 对象通常都具有以下 7 个基础可设属性:
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]。如果不设置此参数,在取数据值时不对数据做小数位处理。 |
{String} 压盖判断权重字段名称,此属性字段是是用户数据(feature) attributes 中包含的字段,且字段对应的值的类型必须是数值型(Number)。 此属性字段的值将作为用户数据(feature)所对应图表的压盖处理权重值。压盖处理权重值的规则是:权重值高的图表优先执行压盖判断,有权重的图表优先于无权重图表执行压盖判断。 注意:压盖判断权重值高的图表不一定优先显示,考虑以下情况:三个压盖处理权重值依次降低的图表,第一个图表(权重值最高)已显示; 第二个图表(权重值次之)在进行压盖判断时发现与第一个图表产生压盖,不显示;第三个图表(权重值最低)在进行压盖判断时发现它不对已显示图表产生压盖,显示此图表; 这样权重值低的第三个图表会在图层中显示,权重值高的第二个图表不会显示。
构造函数,创建一个统计专题图层。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar");
name | {String} 此图层的图层名,必设参数。 |
chartsType | {String} 图表类型,必设参数,目前支持:”Bar”, “Line”, “Pie”。 |
options | {Object} 此类与父类提供的属性。 |
{SuperMap.Layer.Graph} 专题图。
addFeatures: function( features )
向专题图图层中添加数据 , 统计专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.addFeatures(features);
features | {Array(SuperMap.Feature.Vector)} 需要添加的数据(矢量要素)。 |
removeFeatures: function( features )
从专题图中删除 feature。这个函数删除所有传递进来的矢量要素(数据)。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
调用此函数会清空图层中缓存的图表。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.removeFeatures(features);
features | {Array(SuperMap.Feature.Vector)} 要删除feature的数组。 |
在专题图的要素数组 features 里面遍历每一个 feature,当 feature[property] === value 时, 返回此 feature(并且只返回第一个)。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.getFeatureBy("pop", 100);
property | {String} feature 的某个属性名称。 |
value | {String} property 所对应的值。 |
{SuperMap.Feature.Vector} 第一个匹配属性和值的矢量要素。
通过给定一个 id,返回对应的矢量要素。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.getFeatureBy("featureId_1220");
featureId | {String} 矢量要素的属性 id。 |
{SuperMap.Feature.Vector} 对应id的 feature,如果不存在则返回 null。
通过给定一个属性的 key 值和 value 值,返回所有匹配的要素数组。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.getFeatureBy("Pop", 2500);
attrName | {String} 属性的 key。 |
attrValue | {Mixed} 属性对应的 value 值。 |
Array(SuperMap.Feature.Vector) 一个匹配的 feature 数组。
添加专题要素事件监听。
支持的事件包括: click、mousedown、mousemove、mouseout、mouseover、mouseup。
var themeGraphLayer = new SuperMap.Layer.Graph("ThemeGraphLayer", "Bar"); themeGraphLayer.on("mouseover", evn); function evn(e){ if(e.target && e.target.refDataID){ if(e.target.dataInfo){ alert(e.target.dataInfo); } } }
event | {String} 事件名称。 |
callback | {Function} 事件回调函数。 |
销毁图层,释放资源。调用此函数后,图层对象的所有属性将被字为空。
destroy: function()
设置图表类型,此函数可动态改变图表类型。 在调用此函数前请通过 chartsSetting 为新类型的图表做相关配置。
setChartsType: function( chartsType )
向专题图图层中添加数据 , 统计专题图仅接收 SuperMap.Feature.Vector 类型数据, feature 将储存于 features 属性中,其存储形式为数组。
addFeatures: function( features )
从专题图中删除 feature。这个函数删除所有传递进来的矢量要素(数据)。 参数中的 features 数组中的每一项,必须是已经添加到当前图层中的 feature, 如果无法确定 feature 数组,则可以调用 removeAllFeatures 来删除所有feature。 如果要删除的 feature 数组中的元素特别多,推荐使用 removeAllFeatures, 删除所有feature后再重新添加。这样效率会更高。
removeFeatures: function( features )
清除当前图层所有的矢量要素。
removeAllFeatures: function()
重绘该图层,成功则返回true,否则返回false。
redraw: function()
清除图层。清除的内容包括数据(features) 、专题要素、缓存。
clear: function()